【发布时间】:2016-01-10 14:22:09
【问题描述】:
找不到任何文档来解释为什么无法从枚举中访问类变量。考虑这个例子:
package groovy;
public class Universe {
static String test = "test";
enum Planet {
EARTH {
@Override
void doSomething(){
System.out.print(test);
}
};
abstract void doSomething();
}
public static void main(String[] args) {
Universe.Planet.EARTH.doSomething(); // No such property: test for class: groovy.Universe$Planet$1
}
}
我知道这段代码也是完美的 Java 代码。虽然它使用 JRE 可以按预期工作,但不能使用 Groovy 的运行时环境,这让我更加好奇。有什么不同的证据吗?谢谢
【问题讨论】:
-
这听起来像一个错误。如果你使用
@CompileStatic会发生什么? -
groovy 不是完美的java,还是有区别的。
标签: java groovy enums static-members class-variables