搞懂Java的反射机制
生活随笔
收集整理的這篇文章主要介紹了
搞懂Java的反射机制
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
搞懂Java的反射機(jī)制
1.什么是反射?
java的反射機(jī)制是指可以在運行狀態(tài)下獲取類和對象的所有屬性和方法。
2.反射的作用?
1、在運行時獲取一個類/對象的成員變量和方法
2、在運行時創(chuàng)建一個類的對象
3、在運行時判斷一個對象是否屬于一個類
3.反射有哪些具體的應(yīng)用場景?
1、JDBC連接數(shù)據(jù)庫時,使用Class.forName()通過反射加載數(shù)據(jù)庫的驅(qū)動。
2、Spring的IOC (控制反轉(zhuǎn))
使用的就是工廠模式+反射的原理,需要使用到的類事先在配置文件中先聲明,需要時根據(jù)配置的類名動態(tài)生成對象。
4.反射的缺點?
反射代碼的執(zhí)行速度慢,性能差,如果有其他方案可以替代,建議不使用。
5.如何獲取類對象?
1、Class.forName(“xxx”)
try {clazz = Class.forName("com.reflection.User"); } catch (ClassNotFoundException e) {e.printStackTrace(); }2、通過對象的getClass()方法
Class clazz = user.getClass();3、直接通過類名獲取類對象
Class clazz = User.class;6.如何通過反射創(chuàng)建對象?
1、調(diào)用無參構(gòu)造器
try {clazz = Class.forName("com.reflection.User"); } catch (ClassNotFoundException e) {e.printStackTrace(); } Object obj = clazz.newInstance();2、調(diào)用有參構(gòu)造器
try {clazz = Class.forName("com.reflection.User"); } catch (ClassNotFoundException e) {e.printStackTrace(); } Constroctor constroctor = clazz.getConstructor(String.class,Integer.class); Object obj = constroctor.newInstance("龍哥", 29); 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的搞懂Java的反射机制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql+tushare搭建本地数据库
- 下一篇: Android应用开发—Intent组件