4

我对在 java 中使用内部类有疑问。这是我的代码。

代码:

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为静态和顶级元素,但它是如何工作的?

4

1 回答 1

8

引用链接的答案。

8.1.2 内部类和封闭实例
......
内部类不能声明静态成员,除非它们是编译时常量字段(第 15.28 节)。

final使它们一旦初始化就保持不变,= 10是一个编译时常数值。因此是允许的。

于 2013-02-07T05:58:24.727 回答