java框架基礎技術之--------反射機制

渴睡人的眼發表於2018-07-14

反射機制的用途

    通過物件、類名、字串形式的 包名加類名 ,獲取到該類的描述物件(class物件),通過該class物件可以將該類中的構造方法,成員方法,成員變數以物件的形式獲取到,通過這些獲取到的物件,我們就可以為成員變數賦值,執行成員方法、建立該類物件等操作。框架中大量使用該機制。

    優點:靈活,易維護。

獲取類中的內容

獲取構造方法:

 

  1. 獲取類中所有的公開的構造方法:類物件.getConstructors();
  2. 獲取所有的構造方法:類物件.getDeclaredConstructors();
  3. 獲取無參的構造方法:類物件.getConstructors();
  4. 獲取帶一個double型別的構造方法 類物件.getConstructor(double.class)

獲取成員方法:

 

  1. 獲取所有公開的成員方法 類物件.getMethods();
  2. 獲取所有的成員方法 類物件.getDeclaredMethods();
  3. 獲取某一個成員方 類物件.getMethod(方法名,引數);

獲取成員變數:

 

  1. 獲取所有公開的欄位 類物件.getFields();
  2. 獲取所有欄位 類物件.getDeclaredFields();
  3. 獲取某一個欄位 類物件.getDeclaredField(欄位名);

使用:

 

  1. 通過獲取到的構造方法物件建立該類的物件 構造方法物件.newInstance();
  2. 通過獲取到的成員方法物件執行該方法 成員方法物件.invoke(所屬物件,引數);
  3. 通過獲取到的欄位物件為該欄位賦值 欄位物件.set(所屬物件,值);
  4. 通過獲取到的欄位物件取出該欄位值 欄位物件.get(所屬物件);

 

相關文章