描述
Java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法返回与给定字符串名的类或接口的Class对象,使用给定的类加载器。
指定的类加载器加载的类或接口。如果该参数加载器loader 为空,通过引导类加载器加载类。当类被初始化的初始化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()方法。
- 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