我想在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中是否存在这样做的方法?也许有反思?
答案 0 :(得分:2)
你不需要反思。你需要其中一种方法。
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可能是最顶层的元素,而在其他元素中它可能是
最底层的一个。这是一件重要的事情。
请点击此处了解更多详情。