天天看點

java反射

在運作時判斷任意一個對象所屬的類;

在運作時構造任意一個類的對象;

在運作時判斷任意一個類所具有的成員變量和方法;

在運作時調用任意一個對象的方法。

即在運作狀态時,對于任何一個類,都可以擷取這個類的所有屬性和方法。

先看一個非常簡單的例子,隻有倆個類 

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

繼續閱讀