在運作時判斷任意一個對象所屬的類;
在運作時構造任意一個類的對象;
在運作時判斷任意一個類所具有的成員變量和方法;
在運作時調用任意一個對象的方法。
即在運作狀态時,對于任何一個類,都可以擷取這個類的所有屬性和方法。
先看一個非常簡單的例子,隻有倆個類
number.java
在reflecttest.java的main方法中通常這樣就可使用number類了
這裡要使用反射的方式如何去做?首先要獲得對應對象的class對象,下面将詳細看看如何獲得對象。
擷取某個類或對象所對應的class對象的3種方式:
使用class類的靜态方法forname,如class.forname(“java.lang.string”);
使用.class文法,如string.class;
使用對象的getclass方法,如
若想通過類的不帶參數的構造方法來生成對象,我們有兩種方式:
1)先獲得class對象,然後通過該class對象的newinstance方法直接獲得即可。如
2)先獲得class對象,然後通過該class對象獲得所對應的constructor對象,再通過該constructor對象的newinstance方法生成。如
若想通過類的帶參數的構造方法來生成對象,隻能使用下面這種方式:
在這裡,我們使用反射來擷取number的方法
參考文章:
<a href="http://blog.csdn.net/furongkang/article/details/6966400">http://blog.csdn.net/furongkang/article/details/6966400</a>
轉載:http://blog.csdn.net/xsf50717/article/details/51066853