1. ホーム
  2. java

[解決済み] 静的メソッド内で非静的な内部クラスをインスタンス化する方法は?

2022-06-24 08:50:44

質問

次のようなコードがあります。

public class MyClass {

   class Inner {
     int s, e, p;
   }

   public static void main(String args[]) {
     Inner in;
   }
}

この部分までは問題ないのですが、mainメソッド内の'in'のインスタンスが in = new Inner() と表示されるため non static field cannot be referenced in static context .

どのような方法があるのでしょうか?私は自分の Inner クラス 静的 .

どのように解決するのですか?

他のアウタークラスへの参照も持つ必要があります。

Inner inner = new MyClass().new Inner();

もしInnerが静的であれば、次のようになります。

Inner inner = new MyClass.Inner();