gpt4 book ai didi

java - 在Java中查找方法的调用者(反射)

转载 作者:行者123 更新时间:2023-12-02 06:13:58 25 4
gpt4 key购买 nike

我想在 Java 中恢复调用者的实例。这是我的代码

class A {
void methodA() {
B b = new B();
A a = b.methodB(); //needs to be the same instance ie "this"
}
}

class B {
A methodB() {
//Here the code (with reflection) I need
A a = getPreviousInstanceCaller();
return A
}
}

Java 中是否存在一种方法可以做到这一点?也许有反射(reflection)?

最佳答案

你不需要为此反射(reflection)。您需要其中一种方法。

http://docs.oracle.com/javase/7/docs/api/java/lang/Throwable.html#getStackTrace%28%29

http://docs.oracle.com/javase/7/docs/api/java/lang/Thread.html#getStackTrace%28%29

请注意堆栈跟踪元素的顺序(0、1、2 等)
不同版本的 JDK 可能会有所不同。在某些版本中的含义
元素 0 可能是最顶层的元素,而在其他元素中它可能是
最底层的一个。这是一件需要牢记的重要事情。

请参阅此处了解更多详细信息。

Getting the name of the current executing method

关于java - 在Java中查找方法的调用者(反射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21649585/

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