我正在学习拜德·巴迪( Buddy ),我正试图用它代替CGLib。我想知道是否有一种方法来实现拦截写入到任何字段。我不知道字段类型,也不想更改赋值。我只想在任何访问上记录field written!。
示例:如果我有这个类:
public class Ex {
public int i;
public String s;
public boolean b;
}以后当我这么做的时候:
Ex e = new Ex();
e.i=1;
System.out.println("Value of i:" + i);
e.s="hello";
System.out.println("Value of s:" + hello);它应产出:
field written!
Value of i: 1
field writed!
Value of s: hello在“自定义工具”下的“帮助”页面中,有一个示例,但不清楚。
发布于 2016-05-03 10:22:08
不那是不可能的。这是你用cglib做的事吗?因为this is neither possible using Byte Buddy nor using cglib。
问题是字段不是动态分派的。与其重新定义包含字段的类,还需要重新定义任何访问字段的类--几乎是不可能的。
https://stackoverflow.com/questions/36983053
复制相似问题