bma*_*ies 11 java eclipse enums
Eclipse indigo,java 1.6
public interface I {
String getName();
}
/* and in another file */
public enum E implements I {
E1() {
String getName() { return "foo"; }
};
}
Run Code Online (Sandbox Code Playgroud)
在Eclipse中,这有效!其他类可以在类型I的引用上调用getName().实际的javac拒绝它,声称枚举中没有getName()这样的东西.这只是一个Eclipse bug吗?
请注意,对此有用的是枚举器中的方法定义.如果我做正常的事情,它在Eclipse和Javac中都可以正常工作,并且在枚举的底部定义了返回字段值的函数.
ysh*_*vit 13
getName()在E1应该是public-是什么导致你的问题?否则,您尝试使用package-private方法覆盖公共方法(接口中声明的所有方法都是公共方法),这是不允许的.
首先我同意@yshavit。
否则它可能与此相关:Workaround for javaccompilation order bug in maven
我认为这与名字顺序有关。尝试重命名你的接口 A,它可能会先编译并且一切应该可以工作。
| 归档时间: |
|
| 查看次数: |
790 次 |
| 最近记录: |