當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java Java.lang.Class.forName()用法及代碼示例



描述

這個java.lang.Class.forName(String name, boolean initialize, ClassLoader loader) 方法使用給定的類加載器返回與具有給定字符串名稱的類或接口關聯的 Class 對象。

指定的類加載器用於加載類或接口。如果參數loader為空,該類通過引導類加載器加載。隻有當類被初始化initialize參數為真,如果它沒有提前初始化。

聲明

以下是聲明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.tutorialspoint;

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

相關用法


注:本文由純淨天空篩選整理自 Java.lang.Class.forName() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。