1 つの Java ファイル内の複数のクラス宣言
Java では、同じソース ファイル内で複数のクラスを定義できます。ただし、この手法にはいくつかの注意点と制限があります。
テクニックの具体的な名前の欠如
やや一般的な手法であるにもかかわらず、このテクニックには特定の名前がありません。内部、ネスト、匿名などの他のクラス分類とは異なり、正式名class.
コンパイルの制限
Java 言語仕様 (JLS) では、システムが他のコンパイル単位で非パブリック クラスを参照する際に制限を強制する可能性があると述べていますが、この制限は、Java コンパイラ間で一貫して実装されていません。
Javac の制限事項
具体的には、どちらのクラスもそのクラスが存在するファイルの同名ではない場合、別のファイルの最上位クラスを参照するクラスをコンパイルするときに、Javac はエラーを発行することがあります。この制限は次の理由によるものです。コンパイラは、非パブリック クラスに対してどのソース ファイルを参照するかを決定できません。
の回避問題
この制限を回避するために、開発者は通常、各ソース ファイルに単一の最上位クラスを配置するという規則に従います。これにより、コンパイル プロセスに影響を与えることなく、クラスのアクセス レベルをより柔軟に変更できるようになります。
新しい Javac 機能
Javac の新しいバージョンでは、次のような場合にも警告が表示されます。ソース ファイルの外部から参照される補助クラスが存在するため、ファイルごとに単一の最上位クラスの使用がさらに推奨されます。
以上が複数の Java クラスが 1 つのファイルに存在できますか?またその影響は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。