public class Test {
public enum Directions {
NORTH, WEST, SOUTH, EAST
}
static final Directions D1 = Directions.NORTH;
static class Inner {
static final Directions D2 = Directions.NORTH;
}
class Inner2 {
static final Directions D3 = Directions.NORTH;
}
}
Run Code Online (Sandbox Code Playgroud)
我正在获取标题中的IDE-Error,指的是变量D3.有人可以向我解释一下吗?为什么我不能在非静态的内部类中声明静态变量,为什么枚举值不是常量?
\n\n\n内部类不能声明静态成员,除非它们是常量变量 ( \xc2\xa74.12.4 ),或者发生编译时错误。
\n
Enum条目不被视为常变量?\n\n原始类型或 String 类型的变量是 Final 的并且使用编译时常量表达式 (\xc2\xa715.28) 进行初始化,称为常量变量。
\n