从方法中检查调用它的方法

时间:2013-08-02 14:58:02

标签: java

说,我有一些Java代码

public static void method1(){
...//method body
method2();
}
public static void method2(){
...//method body
}

我希望method2能够以String的形式知道调用它的方法。例如,在这种情况下,如果运行了method1,则调用method2,method2可以打印出它是从method1调用的。

提前致谢!

4 个答案:

答案 0 :(得分:4)

StackTraceElement[] ste = Thread.currentThread().getStackTrace();
  

数组的最后一个元素表示堆栈的底部,这是序列中最近的方法调用。

答案 1 :(得分:0)

StackTraceElement[] stackElements = Thread.currentThread().getStackTrace();
System.out.println(stackElements[1].getMethodName());

您可能需要检查所需的索引。

答案 2 :(得分:0)

我认为你需要这样的东西:

public class App
{   
    static public void main(String[] args) {
        secondMethod();
    }   

    public static void secondMethod() {
        StackTraceElement[] ste = Thread.currentThread().getStackTrace();
        System.out.println(ste[ste.length-1]);          
    }
}

答案 3 :(得分:0)

试试这个

public class TestClass {
    public static void main(String... args) {
        m1();
    }

    static void m1() {
        m2();
    }

    static void m2() {
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();
        System.out.println(stackTrace[2].getMethodName());
    }
}