簡單易懂的一篇文章
https://www.cnblogs.com/yrstudy/p/6500982.html 這篇簡短
http://www.cnblogs.com/jqyp/archive/2012/03/29/2423112.html 這個很長,古老。
說完是什么,為什么,我們必然需要掌握如何使用反射,先看反射中涉及了那些方法。
Class c=Class.forName("className");注明:className必須為全名,也就是得包含包名,比如,cn.netjava.pojo.UserInfo;
Object obj=c.newInstance();//創建對象的實例
OK,有了對象就什么都好辦了,想要什么信息就有什么信息了。
獲得構造函數的方法
Constructor getConstructor(Class[] params)//根據指定參數獲得public構造器
Constructor[] getConstructors()//獲得public的所有構造器
Constructor getDeclaredConstructor(Class[] params)//根據指定參數獲得public和非public的構造器
Constructor[] getDeclaredConstructors()//獲得public的所有構造器
獲得類方法的方法
Method getMethod(String name, Class[] params),根據方法名,參數類型獲得方法
Method[] getMethods()//獲得所有的public方法
Method getDeclaredMethod(String name, Class[] params)//根據方法名和參數類型,獲得public和非public的方法
Method[] getDeclaredMethods()//獲得所以的public和非public方法
獲得類中屬性的方法
Field getField(String name)//根據變量名得到相應的public變量
Field[] getFields()//獲得類中所以public的方法
Field getDeclaredField(String name)//根據方法名獲得public和非public變量
Field[] getDeclaredFields()//獲得類中所有的public和非public方法
看到這些方法,你就可以明白,反射是多么的強大了,當你正確使用這些方法的時候,基本上是掌握了反射的技巧。
以上多用幾次用明白就明白了了。以上純屬copy。
不過這些多用用,用明白了,基本的反射確實ok了。