java.lang.Class.forName(String name, boolean initialize, ClassLoader loader)方法实例
java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法返回的类或接口与给定的字符串名称相关联的Class对象,使用给定的类加载器。
指定的类加载器加载的类或接口。如果参数加载器为null,类是通过引导类加载器加载。类的初始化仅当初始化参数为true,如果它没有被早期初始化。
声明
以下是java.lang.Class.forName()方法的声明
public static Class<?> forName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException
参数
-
name -- 这是希望的类的完全限定名。
-
initialize -- 这显示了类是否必须被初始化。
-
loader -- 这是类装载器从哪个类必须被加载。
返回值
此方法返回一个代表所需的类的Class对象。
异常
-
LinkageError -- 如果联动失败。
-
ExceptionInInitializerError -- 如果用这种方法引起的初始化失败。
-
ClassNotFoundException -- 如果类不能位于由指定的类加载器。
例子
下面的例子显示java.lang.Class.forName()方法的使用。
package com.yiibai; 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