为什么仅在枚举常量的可选类体内实现接口方法会导致编译错误?

时间:2013-09-25 10:19:50

标签: java enums

为什么编译下面的代码会导致错误?

public class Test {
    public static void main(String[] args) {
        TestEnum.INSTANCE.run();
    }
}

enum TestEnum implements Runnable {
    INSTANCE {
        @Override public void run() {}
    };
}
$ javac Test.java
Test.java:3: cannot find symbol
symbol  : method run()
location: class TestEnum
        TestEnum.INSTANCE.run();
                         ^

1 个答案:

答案 0 :(得分:1)

这是Oracle JDK 1.6编译器的问题。使用OpenJDK和Oracle JDK 1.7,它可以正常工作。