java - Eclipse 喜欢它,javac 讨厌它,它是一个带有接口(interface)的枚举

标签 java eclipse enums

eclipse 靛蓝,java 1.6

public interface I {
  String getName();
}

/* and in another file */

public enum E implements I {
  E1() {
     String getName() { return "foo"; }
  };
}

在 Eclipse 中,这有效!其他类可以在类型 I 的引用上调用 getName()。实际的 javac 拒绝了它,声称枚举中没有 getName() 这样的东西。这只是一个 Eclipse 错误吗?

请注意,在枚举器中 的方法定义很奇怪。如果我做正常的事情,并且在枚举底部定义的函数返回一个字段的值,那么它在 Eclipse 和 Javac 中都工作得很好。

最佳答案

E1 中的

getName() 应该是 public - 这是导致您出现问题的原因吗?否则,您将尝试使用包私有(private)方法覆盖公共(public)方法(接口(interface)中声明的所有方法都是公共(public)的),这是不允许的。

关于java - Eclipse 喜欢它,javac 讨厌它,它是一个带有接口(interface)的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9606829/

相关文章:

java - 图像/图标使用相对路径

c++ - 如何使用默认值将值分配给构造函数中的枚举?

java匿名类枚举编译错误

java - 如何将大整数转换为二进制? - java

java - 如何为 maxmind geoip2 eclipse 添加依赖项

java - 子项目取决于Gradle中的根项目

java - 为什么我不能在 eclipse.ini 中将 -Xmx 设置为 1024m?

java - 限制枚举潜在值的方法

java servlet 使用角色登录

java - Java 中 Active Directory 查询的 LDAP 单点登录