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