
反射:針對性地映射 某一個完整事務的行為或特征(單獨操作類中任意內容)
1、反射機制 - 獲取物件
-
什么是類物件?
類物件,就是用于描述這種類,都有什么屬性,什么方法,
-
物件之前的區別?
gareen 和 teemo都是 Hero物件,他們的區別在于:各自有不同的名稱、血量、技能,
-
類之間的區別?
Hero 和 soldier 都是類,他們的區別在于有:不同的方法,不同的屬性,
-
獲取類物件的3種方式
- Class.forName
- Hero.class
- new Hero().getClass()
package reflection; import charactor.Hero; public class TestReflection { public static void main(String[] args) { String className = "charactor.Hero"; try { Class pClass1=Class.forName(className); Class pClass2=Hero.class; Class pClass3=new Hero().getClass(); System.out.println(pClass1==pClass2); System.out.println(pClass1==pClass3); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
2、反射機制 - 訪問屬性
2.1、getField 和 getDeclaredField的區別
getDeclaredField: 獲取本類所有欄位(無視權限訪問修飾符) 適用于獲取當前類
getField:只能獲取public欄位,包括從父類繼承來的欄位 適用于獲取父類public
3、反射固定步驟:
3.1、獲取
- 1、獲取物件 Class
- 2、通過類物件獲取內容(成員方法、成員變數)
- 3、設定類外可用(暴力反射,private)
3.2、執行
- 1、通過類物件獲取類的構造方法
- 2、通過構造方法創建物件
- 3、呼叫
最后注意:光理論是不夠的,在此順便送大家十套2020最新JAVA架構專案實戰教程及大廠面試題庫,進我扣裙 :七吧傘吧零而衣零傘 (數字的諧音)轉換下可以找到了,還可以跟老架構師交流本文的文字及圖片來源于網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/193104.html
標籤:Java
上一篇:按字典順序對多個字串排序
