我有一个要替换的类型列表,用于记录目的,但不更改我的代码(记录部分只是偶尔使用)。我正在寻找一种简单的方法来为我的类字段创建某种代理,以便在运行时知道我的类字段何时更改,或者当我没有类源代码(例如 LinkedList)时,当调用类方法时。
例如,如果我有这个代码,这是一个属于我的类,我只需要收到有关 MyClass 字段状态更改的警告:
public class MyClass {
private LinkedList<Integer> myList;
private int myInteger;
public void myMethod()
{
myInteger = 15;
myList = new LinkedList<Integer>();
}
public void myOtherMethod()
{
myList.add(1);
}
public LinkedList<Integer> getMyList() {
return myList;
}
}
我需要知道,在运行时(但代码修改可以在编译时完成),每次有人更改 的值时myInteger
,添加一个元素myList
并更改myList
引用的LinkedList
. 我认为解决方案不应该完全通过代码分析来完成,因为列表引用可以通过参数传递到任何地方,比如getMyList()
在这种情况下,日志记录仅用于字段,无论它们是原始的还是对象。对于我没有代码的类型(如 LinkedList),如果在调用某个方法或读取或写入任何公共字段时收到通知,我会很高兴。