1. ホーム
  2. Java

Java appears タイプEを囲むインスタンスがアクセスできない。

2022-02-12 12:48:32

最近、Javaを見ていて、本に載っている例をコンパイルして書いたら、1箇所しかなかったので、内部クラスを作ったんです。E型のインスタンスを囲んでアロケーションを修飾しなければならない(例: x.new A() ここでxはEのインスタンス). instance of E)。Eは私が書いた内部クラスのことです。

<スパン プロンプトによると 内部クラス E の適切なインスタンスを代入する必要があります (例: x.new A(), x は E のインスタンスである必要があります)。 このヒントを見て、「すでにnewでクラスをインスタンス化しているのに、なぜ動かないのだろう」と思いました。

そこでBaiduは関連情報をググってみた。私が書いた内部クラスは動的、つまりpublic classで始まっていることがわかりました。そして、メインプログラムはpublic static class main.である。Javaでは クラス内の静的メソッドは動的メソッドを直接呼び出すことはできない。 内部クラスのメンバ変数やメソッドを呼び出すには、クラスを静的に変更するしかありません。そのため の中で 他の変更なしに 最も簡単な解決策は、public クラスを public static クラスに変更することです。

同じような悩みを抱えている方のために、ここに書いておきます。