欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

检索当前线程的堆栈信息

程序员文章站 2022-07-05 13:21:19
...

根据当前线程获取堆栈信息,可以检索各个方法的调用顺序,也可以获得上层类的信息。

package cywen.demo;

public class Demo {

    public static void main(String[] args) {
        Invoker invoker = new Invoker();
        invoker.method();
    }

}

class Invoker {

    private Service service = new Service();

    public void method(){
        service.method();
    }

}

class Service {

    void method(){
        StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
        System.out.println(Thread.currentThread().getStackTrace()[2].getMethodName());
        for (StackTraceElement stackTraceElement:stackTraceElements) {
            System.out.println(stackTraceElement.getClassName() + "." + stackTraceElement.getMethodName() + "()");
        }
    }

}

"C:\Program Files\Java\jdk1.8.0_191\bin\java.exe" ...
method
java.lang.Thread.getStackTrace()
cywen.demo.Service.method()
cywen.demo.Invoker.method()
cywen.demo.Constants.main()

Process finished with exit code 0