Android(java)學習筆記107:通過反射獲得構造方法並且使用

來源:互聯網
上載者:User

標籤:

下面我會通過代碼形式進行講解:

 1 package cn.itcast_02; 2  3 import java.lang.reflect.Constructor; 4  5 import cn.itcast_01.Person; 6  7 /* 8  * 通過反射擷取構造方法並使用。 9  */10 public class ReflectDemo {11     public static void main(String[] args) throws Exception {12         // 擷取位元組碼檔案對象13         Class c = Class.forName("cn.itcast_01.Person");//這裡紅色字型的是設定檔,將來我們只要改一下設定檔,就載入另一個類構造,方便14 15         // 擷取構造方法16         // public Constructor[] getConstructors():所有公用構造方法17         // public Constructor[] getDeclaredConstructors():所有構造方法18         // Constructor[] cons = c.getDeclaredConstructors();19         // for (Constructor con : cons) {20         // System.out.println(con);21         // }22 23         // 擷取單個構造方法24         // public Constructor<T> getConstructor(Class<?>... parameterTypes)25         // 參數表示的是:你要擷取的構造方法的構造參數個數及資料類型的class位元組碼檔案對象26         Constructor con = c.getConstructor();// 返回的是構造方法對象27 28         // Person p = new Person();29         // System.out.println(p);30         // public T newInstance(Object... initargs)31         // 使用此 Constructor 對象表示的構造方法來建立該構造方法的聲明類的新執行個體,並用指定的初始化參數初始化該執行個體。32         Object obj = con.newInstance();33         System.out.println(obj);34         35         // Person p = (Person)obj;36         // p.show();37     }38 }

(1)使用public Constructor[] getConstructors(),然後利用增強for迴圈進行遍曆,然後得知如下結果:我們發現只能遍曆公用構造方法。

(2)使用public Constructor[] getDeclaredConstructors():然後利用增強for迴圈進行遍曆,然後得知如下結果:我們發現可以遍曆所有構造方法。

 

(3)使用public Constructor[] getDeclaredConstructors():我們在原來的Person類中添加一個private構造,然後利用增強for迴圈進行遍曆,然後得知如下結果:我們發現可以遍曆所有構造方法。包括剛剛我們定義的private的構造,是不是感覺很牛逼!!!

 

Android(java)學習筆記107:通過反射獲得構造方法並且使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.