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 に答える