Java では、どちらも Class.forName()および Class.forName().newInstance() は、動的クラスの読み込みにおいて重要な役割を果たします。ただし、それらは別の目的を果たします。
Class.forName() メソッドは、完全修飾クラス名を文字列として受け取り、そのクラスに関連付けられた Class オブジェクトを返します。これは、クラス ローダーを使用してクラス ファイルを見つけ、その内容を読み取ることによって行われます。 Class.forName() はクラスをインスタンス化しません。これは単にメタデータと情報へのアクセスを提供するだけです。
Class.forName().newInstance() メソッドは、一方、 Class.forName() によって返される Class オブジェクトによって表されるクラスの新しいインスタンス。これは、クラスのデフォルトのコンストラクターを呼び出すことによって行われます。
違いを説明するための例を考えてみましょう:
package test; public class Demo { public Demo() { System.out.println("Hi!"); } public static void main(String[] args) throws Exception { Class clazz = Class.forName("test.Demo"); Demo demo = (Demo) clazz.newInstance(); } }
この例では:
Class.forName() と Class.forName() の主な違い.newInstance() は、Class.forName() がクラスをロードするだけであるのに対し、Class.forName().newInstance() はクラスをロードするだけでなく、そのクラスのインスタンスも作成します。
Class.forName() および Class.forName().newInstance() は、動的クラスの読み込みが必要なシナリオでよく使用されます。例としては、次のものが挙げられます。
以上がJava の `Class.forName()` と `Class.forName().newInstance()` の主な違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。