groovy – 覆盖抽象枚举方法
以下是有效的
Java代码:
enum ProductType { CASH_BONUS { void doSomething() {} },CUSTOMIZABLE { void doSomething() {} } abstract void doSomething() } 但是当我尝试在Groovy控制台中运行它时,我得到错误:
我似乎记得读过Groovy(尚未)支持枚举常量的重写方法,这是正确的,如果是这样,是否有一种优雅的方式来模拟这种行为? 更新 这是一个围绕Groovy 1.8.0修复的错误 解决方法
这是一个错误:
http://jira.codehaus.org/browse/GROOVY-4641
你可以使抽象方法不抽象.抛出异常以确保始终覆盖它,如: enum ProductType { CASH_BONUS(1) { void doSomething() { } },CUSTOMIZABLE(2) { void doSomething() { } }; ProductType(int n) { this.n=n; } final int n; void doSomething() { throw new UnsupportedOperationException() } } ProductType.CASH_BONUS.doSomething(); ProductType.CUSTOMIZABLE.doSomething(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |