说,我有一些Java代码
public static void method1(){
...//method body
method2();
}
public static void method2(){
...//method body
}
我希望method2能够以String的形式知道调用它的方法。例如,在这种情况下,如果运行了method1,则调用method2,method2可以打印出它是从method1调用的。
提前致谢!
答案 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());
}
}