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

时间:2014-02-08 17:50:56

标签: java reflection

我想在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中是否存在这样做的方法?也许有反思?

1 个答案:

答案 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可能是最顶层的元素,而在其他元素中它可能是
最底层的一个。这是一件重要的事情。

请点击此处了解更多详情。

Getting the name of the current executing method