我正在研究Byte 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
在自定义工具下的帮助页面中,有一个示例,但不清楚。
答案 0 :(得分:0)
不,那是不可能的。这是你用cglib做的事吗?因为this is neither possible using Byte Buddy nor using cglib。
问题是不会动态调度字段。您需要重新定义访问该字段的任何类,而不是重新定义包含该字段的类。