java – 字节码操作来拦截设置字段的值
发布时间:2020-05-24 06:00:30 所属栏目:Java 来源:互联网
导读:使用像ASM或cglib这样的库,有没有办法将字节码指令添加到类中,以便在设置类字段的值时执行代码?例如,假设我有这个类: public class Person { bool dirty; public String name; public Date birthDate; publi
|
使用像ASM或cglib这样的库,有没有办法将字节码指令添加到类中,以便在设置类字段的值时执行代码? 例如,假设我有这个类:
假设一段代码包含以下行: person.name =“乔”; 我希望拦截此指令,以便将脏标志设置为true.我知道这对于setter方法是可行的 – person.setName(“Joe”) – 因为类方法可以通过字节码操作来修改,但我想对字段做同样的事情. 这是可能的,如果是的话,怎么样? 编辑 我想避免修改访问类的代码部分,我正在寻找一种方法来将拦截代码作为Person类的一部分.是否存在用于字段访问的伪方法,类似于Python类中的属性? 最佳答案 更新字段有两个字节码:putfield和putstatic(参见http://java.sun.com/docs/books/jvms/second_edition/html/Instructions2.doc11.html).这些将在using类的代码中找到,因此无法简单地修改Person.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 通过FXML的JavaFX ImageView不起作用
- java – 如何在ViewPager中加载片段才能选择
- spring配置文件加密方法示例
- java – 使NetBeans(ant)为一个项目生成多个jar文件
- java – 使用EJBContext getContextData – 这是安全吗?
- java – JUnit Derby Spring:每次测试后都会丢弃内存数据库
- Java异常处理的五个关键字
- java – 使用流从现有列表创建不可变列表
- 为什么java / lang / System中的nullPrintStream()函数将cu
- java – Netbeans:通过maven-shade-plugin处理项目的主要工
