Java反射基礎 入門(二)

上一篇文章中已經可以獲取到類的字節碼文件。那麼該如何實例化對象呢?

1.根據字節碼文件創建Person對象(無參構造函數)

Object obj=clazz.newInstance();

方法說明:newInstance()
          創建此 Class 對象所表示的類的一個新實例。

即可產生Person類的對象,默認調用的是Person的無參構造函數

2.那麼如果該類沒有無參構造函數,該如何獲取呢?

查閱JavaApi可以發現這樣的一個函數

Constructor<?>[] getConstructors()
          返回一個包含某些 Constructor 對象的數組,這些對象反映此 Class 對象所表示的類的所有公共構造方法。

那麼什麼是返回的參數Constructor呢 ?

Constructor 提供關於類的單個構造方法的信息以及對它的訪問權限。(也就是說獲取構造函數)

Constructor constructor=clazz.getConstructor(String.class,int.class);
		//通過構造器初始化隊象
		Object obj=constructor.newInstance("xiaoming",38);

函數運行結果爲:person param run..xiaoming:38

這樣就會直接調用Person類的有參構造函數(注意這裏的getConstructor參數爲String.class,int.class)

以上方法就是獲得該類的實例化對象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章