Java反射及如何獲得Class物件

2021-09-12 21:05:37 字數 1021 閱讀 7083

反射是一種機制,利用該機制可以在程式執行過程中對類進行解剖並操作類中的方法,屬性,構造方法等成員。所以反射被稱為框架設計的靈魂。

由上圖分析可得,使用反射機制的前提是獲取該類的位元組碼檔案物件,即class物件。

//通過類的名稱得到class物件,

//用法:多用於配置檔案,將類名定義在配置檔案中。讀取檔案,載入類

class m1 = class.forname("com.generic.manager");

system.out.println(m1.getname());//獲取完整類名(包名+類名)

//通過類名的屬性class獲取

//用法:多用於引數的傳遞

class m2 = manager.class;

system.out.println(m2.get******name());//獲取簡單類名

//物件.getclass():getclass()方法在object類中定義著。

//多用於物件的獲取位元組碼的方式

//建立物件

manager m = new manager();

//獲取classd物件

class m3 = m.getclass();

//得到類名(帶包名)

system.out.println(m3.getname());

manager newinstance = (manager)manager.class.newinstance();

//通過例項呼叫方法

newinstance.printwork();

結論:同乙個位元組碼檔案(*.class)在一次程式執行過程中,只會被載入一次,不論通過哪一種方式獲取的class物件都是同乙個。

Android 反射的使用及如何防止反射

1 獲取系統toast的內部資源 layout view toast的布局檔案 com.android.internal.r.layout.transient notification toast的文字檢視 com.android.internal.r.id.message layoutinflat...

如何使用java反射技術呼叫類和方法及給方法傳參

動態載入類 scanner scan new scanner system.in system.out println 輸入類名 string classname scan.nextline class cls class.forname classname 1.找到demo方法 class 提供了...

Java反射 獲取Class及Class對應資訊

1.獲取構造器 constructor getconstructor class.parametertypes 返回 public 指定形參的 constructor getconstructors 返回 public 所有的constructor getdeclaredconstructor cl...