位置:首頁 > Java技術 > java.lang > java.lang.Class.forName(String name, boolean initialize, ClassLoader loader)方法實例

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