我对在java中使用Inner Classes有疑问。这是我的代码。
代码:
public class Test{
public class InnerClass{
public static int num = 10;
}
}
这是不允许的。我收到错误消息“字段num不能声明为静态;静态字段只能在静态或顶级类型中声明”。
public class Test{
public class InnerClass{
public static final int num = 10;
}
}
但这是允许的。我没有将InnerClass
声明为静态和顶级元素,但它是如何工作的?
答案 0 :(得分:7)
引用链接的答案。
8.1.2 Inner Classes and Enclosing Instances
...
内部类可能不会声明静态成员,除非它们是编译时常量字段(第15.28节)。
final
在初始化时使它们保持不变,= 10
是编译时常量值。因此是允许的。