一、回顧反射相關的知識
1.在xml檔案中使用反射的好處:
1)程式碼更加靈活,後期維護只需要修改配置檔案即可
· 初學者一般習慣於在程式碼本身上直接修改,後期也可以修改配置檔案達到相同的目的
· 修改配置檔案相比較修改程式碼本身,風險更小,更容易維護
· 配置檔案也是需要反射實現的
2)有了反射就可以知到任意一個類的所有資訊
3)但是反射會消耗較大的記憶體,一般只在和合適的地方會使用
2.什麼是反射?
瞭解程式編譯的內部原理:
建立一個 person.java檔案,會在jvm裡面生成一個person.class的檔案,再執行得出結果。
使用反射的前提就是:獲取位元組碼物件(.class),三種方式
1)Object類的getClass()方法,判斷兩個物件是否是同一個位元組碼檔案
Class<?> fr1 = Fruit.getClass();
2)靜態屬性class,鎖物件
Class<fruit> fr2 = Fruit.class;
3)Class類中靜態方法forName(),獲得動態載入類
Class<fruit> fr3 = Class.forName("com.qf.demo.Fruit");
這樣就可以繼續使用位元組碼物件獲取類的相關資訊了
以3)為例:
Constructor constructor = fr3.getconstructor
例項化物件
Fruit fruit = (fruit)constructor.newInstance()
最後根據需求訪問建構函式,成員變數,成員方法等等之類
總結: 反射是框架實現的底層原理,為編碼帶來了極大的便利,但由於作者我本身為小白一個,無法切身感受。需要解釋的是:文中舉例為是為了解釋反射而產生的,實際開發中使用的更加巧妙,也很難一下就理解,需要反覆咀嚼,這次是我在學習mybatis時候對於案例程式使用的反射知識 淺顯的回顧。並沒有解釋到實際案例中反射的作用和用法,之後會持續更新~
@author Wyatt_zhai
2021.9.1 20:29