当前位置: 动力学知识库 > 问答 > 编程问答 >

java - Field writer interceptor

问题描述:

I'am studying Byte Buddy and I am trying to replace CGLib by it. I want to know if there is a way to implement to intercept writing to any field. I do not know the field type and I do not want to change the assigned value. I only want to log field written! on any access.

Example: if I have this class:

public class Ex {

public int i;

public String s;

public boolean b;

}

later when I do this:

Ex e = new Ex();

e.i=1;

System.out.println("Value of i:" + i);

e.s="hello";

System.out.println("Value of s:" + hello);

it should output:

field written!

Value of i: 1

field writed!

Value of s: hello

In the help page under Custom Instrumentation, there is an example but it's not clear.

网友答案:

No, that is not possible. Is this something you were doing using cglib? Because this is neither possible using Byte Buddy nor using cglib.

The problem is that a field is not dispatched dynamically. Rather than redefining the class containing the field, you would need to redefine any class accessing the field what is close to impossible.

分享给朋友:
您可能感兴趣的文章:
随机阅读: