我正在寻找一种向一些遗留 Java 代码添加一些跟踪诊断的方法。从这个意义上说,我的意思是我不能改变任何方法。如果我们考虑以下对象:
public class ClassIOwnAndCanChange {
public static void main(String[] args) {
// store my object here that I want to make
// available in LegacyClassA and B
myMethod("foo", 100);
}
}
public class LegacyClassA {
// method I cannot change
public void myMethod(String name, int timer) {
//want to get my 'injected' object here so that I can,
//for instance, time this method
methodCallThatTakesSomeTime("some param");
}
}
public class LegacyClassB {
// method I cannot change
public void methodCallThatTakesSomeTime(String name) {
// want to get my 'injected' object here for
// diagnostic reasons
}
}
我拥有 A,我想在 B 和 C 中提供一个对象。在 Java 中执行此操作的正确方法是什么,而不更改 A 调用 B 的方法和 B 调用 C 的方法?