kan*_*rbk 3 java static inner-classes
我对使用java中的内部类有疑问.这是我的代码.
码:
public class Test{
public class InnerClass{
public static int num = 10;
}
}
Run Code Online (Sandbox Code Playgroud)
这不被允许.我收到错误消息"字段num不能声明为静态;静态字段只能在静态或顶级类型中声明".
public class Test{
public class InnerClass{
public static final int num = 10;
}
}
Run Code Online (Sandbox Code Playgroud)
但这是允许的.我没有声明InnerClass为静态和顶级元素,但它是如何工作的?
引用链接的答案.
8.1.2内部类和封闭实例
......
内部类不能声明静态成员,除非它们是编译时常量字段(第15.28节).
final一旦初始化,它们就是常量,= 10是一个编译时常量值.因此它是允许的.