レガシー 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 でオブジェクトを使用できるようにしたいと考えています。A が B で呼び出すメソッドと B が C で呼び出すメソッドを変更せずに Java でこれを行う正しい方法は何ですか?