JAVA反射機制教程-獲取類對象


1. 什么是類對象

類對象,就是用於描述這種類,都有什么屬性,什么方法的

2. 獲取類對象

獲取類對象有3種方式
(1). Class.forName
(2). Hero.class
(3). new Hero().getClass()
在一個JVM中,一種類,只會有一個類對象存在。所以以上三種方式取出來的類對象,都是一樣的。

3. 獲取類對象的時候,會導致類屬性被初始化

4. 通過反射機制創建一個對象

 //使用反射的方式創建對象
String className = "charactor.Hero";
//類對象
Class pClass=Class.forName(className);
//構造器
Constructor c= pClass.getConstructor();
//通過構造器實例化
Hero h2= (Hero) c.newInstance();

5. getField和getDeclaredField的區別(獲取屬性字段)

這兩個方法都是用於獲取字段
getField 只能獲取public的,包括從父類繼承來的字段。
getDeclaredField 可以獲取本類所有的字段,包括private的,但是不能獲取繼承來的字段。 (注: 這里只能獲取到private的字段,但並不能訪問該private字段的值)

//獲取類Hero的名字叫做name的字段
Field f1= h.getClass().getDeclaredField("name");
//修改這個字段的值
f1.set(h, "teemo");

6. 調用方法

// 獲取這個類的名字叫做setName,參數類型是String的方法
Method m = h.getClass().getMethod("setName", String.class);
// 對h對象,調用這個方法
m.invoke(h, "蓋倫");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM