gpt4 book ai didi

java - 无需通过方法即可在 Java 类之间共享对象

转载 作者:行者123 更新时间:2023-11-29 03:32:50 24 4
gpt4 key购买 nike

我正在寻找一种方法来向某些遗留 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 中执行此操作的正确方法是什么?

最佳答案

您可以使用 AOP ( Aspect Oriented Programming ) 和/或其他形式的字节码操作来玩各种游戏。

你是否应该差异很大。

这取决于您的精确 需求,以及您需要如何使用“注入(inject)的”对象。我会首先考虑 AOP,因为像 AspectJ 这样的工具成熟了。 AOP 和 ThreadLocal 可能就是您所需要的。

关于java - 无需通过方法即可在 Java 类之间共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17236061/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com