Java-lang-class-forname-loader
提供:Dev Guides
Java.lang.Class.forName()メソッド
説明
- java.lang.Class.forName(String name、boolean initialize、ClassLoader loader)*メソッドは、指定されたクラスローダーを使用して、指定された文字列名を持つクラスまたはインターフェースに関連付けられたClassオブジェクトを返します。
指定されたクラスローダーは、クラスまたはインターフェイスをロードするために使用されます。 パラメータ loader がnullの場合、クラスはブートストラップクラスローダーを介してロードされます。 クラスは、 initialize パラメーターがtrueで、以前に初期化されていない場合にのみ初期化されます。
宣言
以下は* java.lang.Class.forName()*メソッドの宣言です
public static Class<?> forName(String name, boolean initialize, ClassLoader loader)
throws ClassNotFoundException
パラメーター
- name -これは、目的のクラスの完全修飾名です。
- initialize -クラスを初期化する必要があるかどうかを示します。
- loader -これは、クラスをロードする必要があるクラスローダーです。
戻り値
このメソッドは、目的のクラスを表すクラスオブジェクトを返します。
例外
- LinkageError -リンケージが失敗した場合。
- ExceptionInInitializerError -このメソッドによって引き起こされた初期化が失敗した場合。
- ClassNotFoundException -指定されたクラスローダーがクラスを見つけられない場合
例
次の例は、java.lang.Class.forName()メソッドの使用法を示しています。
package com.finddevguides;
import java.lang.*;
public class ClassDemo {
public static void main(String[] args) {
try {
Class cls = Class.forName("ClassDemo");
//returns the ClassLoader object
ClassLoader cLoader = cls.getClassLoader();
/*returns the Class object associated with the class or interface
with the given string name, using the given classloader.*/
Class cls2 = Class.forName("java.lang.Thread", true, cLoader);
//returns the name of the class
System.out.println("Class = " + cls.getName());
System.out.println("Class = " + cls2.getName());
} catch(ClassNotFoundException ex) {
System.out.println(ex.toString());
}
}
}
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
Class = ClassDemo
Class = java.lang.Thread