首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 反射機制:三種獲取 Class 對象的方式與實戰示例

     編輯:Java 綜合教學

Java 反射機制:三種獲取 Class 對象的方式與實戰示例

反射是 Java 動態性的核心,獲取 Class 對象是反射的起點。共有三種標準途徑:

1. 類字面量 類名.class

Class<Integer> cla = Integer.class;

最簡潔、編譯期可檢查、性能最佳。

2. Class.forName("全限定類名")

Class<?> cla2 = Class.forName("java.lang.Integer");

動態加載,常用於配置驅動類名(如 JDBC 驅動)。會拋出 ClassNotFoundException。

3. 實例 getClass() 方法

Class<? extends Integer> cla3 = new Integer(0).getClass();

通過已有實例獲取,適用於運行時類型未知的場景。

完整代碼示例

public void demo() throws ClassNotFoundException {
    // 方式一
    Class<Integer> c1 = Integer.class;
    // 方式二
    Class<?> c2 = Class.forName("java.lang.Integer");
    // 方式三
    Class<? extends Integer> c3 = new Integer(42).getClass();
    
    System.out.println(c1 == c2); // true,同一類加載器下 Class 對象唯一
    System.out.println(c2 == c3); // true
}

後續主題預告

  • 獲取類的構造器、方法、字段
  • 動態創建實例、調用方法、訪問屬性
  • 反射性能優化與 setAccessible 陷阱

未完待續...

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved