デフォルト パッケージからクラスにアクセスする
Java パッケージを使用する場合、クラスのインポートとアクセスのルールを理解することが重要です。混乱を招く可能性のある一般的なシナリオの 1 つは、デフォルト パッケージからクラスをインポートしようとすることです。
問題を理解する
Eclipse では、プロジェクトに複数のクラスが混在する可能性があります。デフォルトのパッケージと他の名前付きパッケージ内。ただし、名前付きパッケージ内のデフォルト パッケージからクラスにアクセスしようとすると、コンパイラはクラスを認識できないことを示すエラーをスローすることがあります。
これは、Java 言語仕様で、クラスからの型のインポートが明示的に禁止されているために発生します。名前のないパッケージ。つまり、インポート ステートメントを使用してデフォルト パッケージのクラスに直接アクセスすることはできません。
解決策
この制限を克服するには、間接メソッドを使用するデフォルトのパッケージ。 1 つのアプローチはリフレクションを使用することです。これにより、実行時にクラスとそのメンバーに動的にアクセスできます。
あるいは、クラスをデフォルトのパッケージから名前付きパッケージに移動して、コードを再構築することを検討できます。これにより、クラスを期待どおりにインポートして使用できるようになります。ただし、これにはネイティブ メソッドと関連する DLL への変更が必要になる場合があることに注意することが重要です。
サンプル コード
リフレクションを使用してデフォルト パッケージからクラスにアクセスする:
Class<?> classObj = Class.forName("Calculations"); Object instance = classObj.newInstance();
以上がJava のデフォルト パッケージからクラスにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。