内部クラスの静的メソッド
非静的内部クラスは静的メソッドを持つことができません。この制限は、内部クラスがその外側のクラスのインスタンスに関連付けられる方法に起因します。
理由:
内部クラスのインスタンスは、外側のクラス。したがって、定義上、特定のインスタンスではなくクラス自体に属する静的メソッドを独立して定義することはできません。
次のコード スニペットを考えてみましょう。
<code class="java">public class Foo { class Bar { static void method() {} // Compiler error } }</code>
メソッド( ) は、非静的内部クラス Bar 内で静的として宣言されています。
静的内部クラス:
対照的に、静的内部クラスは外部クラスのスコープ内で定義されます。インスタンスと直接関連付けることなく、クラス自体。その結果、静的メソッドを含めることができます:
<code class="java">public class Foo { static class Bar { static void method() {} // Valid } }</code>
Java 16 の変更点:
Java 16 以降では、静的内部クラスと非静的内部クラスの両方に、静的メソッドを定義します。この変更は、コードの構成と柔軟性を向上させるために導入されました。
以上があなたの記事に適した質問ベースのタイトルをいくつか示します。 短くて簡潔: * 非静的内部クラスに静的メソッドを持たせないのはなぜですか? * 内部クラスの静的メソッド: Java の進化 * できるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。