博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中反射机制通过字节码文件对象获取字段和函数的方法
阅读量:6640 次
发布时间:2019-06-25

本文共 806 字,大约阅读时间需要 2 分钟。

pclass = Class.forName("get_class_method.Person");
            //Field ageField = pclass.getField("age");//因为age成员变量是私有的,所以会产生NoSuchFieldException异常
            Field ageField = pclass.getDeclaredField("age");//获得该对象反映此 Class 对象所表示的类或接口的指定已声明字段
            Object obj = pclass.newInstance();
            
            //ageField.set(obj, 12);//因为age是私有的,所以即使获取到了,还是不能访问,如果硬要访问,就要强制设置访问权限
            
            ageField.setAccessible(true);//对于构造函数和普通成员方法都可利用相应的setAccessible()函数进行设置!
            //虽然获取到了该字节码的字段,如果设置或得到该字段的具体的值,那么必须指明是哪一个对象的!
            ageField.set(obj, 12);//设置字段的值
            
            System.out.println(ageField.get(obj));//获取字段的值
            
       //普通成员函数的获取
            Method method1 = pclass.getMethod("method1", null);
            method1.invoke(obj, null);
            
            Method method2 = pclass.getMethod("method2", String.calss, int.class);
            method2.invoke(obj, "小强", 20);
本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/4055928.html,如需转载请自行联系原作者
你可能感兴趣的文章
jeesite自定义ckfinder2.x以实现动态权限控制
查看>>
u盘删除的文件能恢复吗?如何恢复
查看>>
苹果手机日历误删怎样恢复?恢复的小技巧
查看>>
mybatis结合分页的使用及解析.
查看>>
全新的智能呼叫中心客户服务体系,企业管理者都应该知道的事
查看>>
【干货】气体分析仪与气体检测仪的区别
查看>>
C语言位操作源码片段
查看>>
查看ubuntu32/64位的方法及其版本信息
查看>>
awk工具---待完善
查看>>
javascript—cookie操作
查看>>
解决Cadillac atsl vin码不一致问题
查看>>
VXLAN 概念(Part I) - 每天5分钟玩转 OpenStack(108)
查看>>
CSS3的伪类选择器;:hover选择器:active选择器和:focus选择器
查看>>
基于NIO的消息路由的实现(二)通讯协议
查看>>
数学:知道n边形各顶点坐标,求面积
查看>>
60幅精美绝伦的绘景(Matte Paintings)作品欣赏(下篇)
查看>>
NSDictionary不可变字典集合
查看>>
linux05-虚拟机配置,磁盘管理,mount
查看>>
zookeeper.jar使用(一)
查看>>
一个新的里程碑
查看>>