public static void main(String[] args) {
method1();
}
static void method1() {
method2();
}
static void method2() {
method3();
}
static void method3() {
printCallingInfo();
}
static void printCallingInfo() {
// 第一个为当前线程,第二个为当前方法,第三个为调用方法...(依次套娃)
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
if (stackTraceElements.length >= 3) {
System.out.println("printCallingInfo方法被" + stackTraceElements[2].getClassName() + "类的" + stackTraceElements[2].getMethodName() + "方法调用");
} else {
System.out.println("没有足够的堆栈跟踪元素");
}
}