java中反射机制通过字节码文件对象获取字段和函数的方法
生活随笔
收集整理的這篇文章主要介紹了
java中反射机制通过字节码文件对象获取字段和函数的方法
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
pclass = Class.forName("get_class_method.Person");//Field ageField = pclass.getField("age");//因為age成員變量是私有的,所以會產(chǎn)生NoSuchFieldException異常Field ageField = pclass.getDeclaredField("age");//獲得該對象反映此 Class 對象所表示的類或接口的指定已聲明字段Object obj = pclass.newInstance();//ageField.set(obj, 12);//因為age是私有的,所以即使獲取到了,還是不能訪問,如果硬要訪問,就要強(qiáng)制設(shè)置訪問權(quán)限
ageField.setAccessible(true);//對于構(gòu)造函數(shù)和普通成員方法都可利用相應(yīng)的setAccessible()函數(shù)進(jìn)行設(shè)置!//雖然獲取到了該字節(jié)碼的字段,如果設(shè)置或得到該字段的具體的值,那么必須指明是哪一個對象的!ageField.set(obj, 12);//設(shè)置字段的值System.out.println(ageField.get(obj));//獲取字段的值
//普通成員函數(shù)的獲取Method method1 = pclass.getMethod("method1", null);method1.invoke(obj, null);Method method2 = pclass.getMethod("method2", String.calss, int.class);method2.invoke(obj, "小強(qiáng)", 20);
//普通成員函數(shù)的獲取Method method1 = pclass.getMethod("method1", null);method1.invoke(obj, null);Method method2 = pclass.getMethod("method2", String.calss, int.class);method2.invoke(obj, "小強(qiáng)", 20);
?
轉(zhuǎn)載于:https://www.cnblogs.com/hujunzheng/p/4055928.html
總結(jié)
以上是生活随笔為你收集整理的java中反射机制通过字节码文件对象获取字段和函数的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 秋瓷炫未经处理雅照图(干毛毛未经处理雅照
- 下一篇: 一个小例子对多态简单的理解