0

のオーバーロードバージョンの使用は何Class.forName()ですか?

public static Class<?> forName(String name,
                       boolean initialize,
                       ClassLoader loader)
                throws ClassNotFoundException

誰かが使用するのが好ましい例を1つ挙げてください。

編集:

以下のコードを参照してください。

Class  clz=(Class)Class.forName("com.test.classloader.MyClass", false, Thread.currentThread().getContextClassLoader());

        MyClass mc=(MyClass) clz.newInstance();
        System.out.println(mc.TEST);
        System.out.println(mc.i);

私のクラス:

public class MyClass {

static String TEST="MYCLASS";
static int  i;
static{
    i=20;
}

}

印刷する理由

MYCLASS

20

4

2 に答える 2

0

パラメータを介して渡さClassれる特定のをロードする場合は、このメソッドを使用します。ClassLoaderloader

また、initializeブール値は、クラスを初期化するかどうかを示します。

非常に簡単です。

于 2012-06-15T07:43:41.293 に答える
0

初期化は、その時点で静的ブロックを呼び出すかどうかです。

静的フィールドまたはメソッドを使用する場合は、動作が表示されないように静的ブロックを呼び出す必要があります。

実行できることは、静的ブロックと例にデバッグ出力を追加して、それらが呼び出される順序を確認することです。(または静的ブロックに例外を追加します)

于 2012-06-15T08:59:26.287 に答える