Java コードで静的にネストされたインターフェイスに遭遇したとき、開発者はその目的と重要性について疑問に思うかもしれません。この記事では、静的ネストされたインターフェイスの背後にあるセマンティクスに光を当て、その役割を説明し、その使用法についてのガイダンスを提供します。
ネストされたインターフェイスで使用される "static" キーワードは余分です。ネストされたインターフェイスは、デフォルトでは本質的に「静的」です。キーワードを削除しても、インターフェイスの動作やアクセシビリティには影響しません。
同様に、インターフェイス メソッドの "public" 修飾子とインターフェイス フィールドの "public Final" 修飾子は冗長です。 。これらの修飾子は、インターフェースのセマンティクスを変更することなく、ソース コードに不必要な混乱を追加します。
ネストされたインターフェースの主な目的は、内部にサブインターフェースを作成することです。囲みクラス。これにより、関連する機能をカプセル化し、そのアクセスをクラス内に制限することができます。例:
<code class="java">public class Foo { public interface Bar { void callback(); } public static void registerCallback(Bar bar) {...} } // ... elsewhere ... Foo.registerCallback(new Foo.Bar() { @Override public void callback() {...} });</code>
この例では、ネストされたインターフェイス Foo.Bar が、それを囲んでいるクラス Foo 内で定義されています。その可視性はクラスに制限されており、Foo 内のコードのみが Foo.Bar にアクセスできることを意味します。このアプローチにより、周囲のクラスに限定されたカスタム コールバックまたはカスタマイズ インターフェイスを作成できます。
コードベースの明確さと一貫性を維持するには、ネストされた修飾子から冗長な修飾子を削除することをお勧めします。インターフェース。 「static」キーワードが表示されている場合は削除します。コードベースを合理化するために、インターフェース メソッドから「public」を削除し、インターフェース フィールドから「public Final」を削除することを検討してください。
以上がJava で静的ネストされたインターフェイスを使用する理由の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。