StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();java
newException().printStackTrace();安全
StackWalkerstack = StackWalker.getInstance();ui
StackWalkerstack = StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE);spa
stack.forEach(System.out::println);.net
public Class getDeclaringClass();線程
public MethodType getMethodType();接口
public StackTraceElement toStackTraceElement();ip
public static voidmain(String[] args){字符串
foo();get
}
private static voidfoo(){
bar();
}
private static voidbar(){
java.lang.StackWalker
.getInstance(java.lang.StackWalker.Option.RETAIN_CLASS_REFERENCE)
.forEach(System.out::println);
}
com.pivovarit.stack.StackWalker.bar(StackWalker.java:16)com.pivovarit.stack.StackWalker.foo(StackWalker.java:10)com.pivovarit.stack.StackWalker.main(StackWalker.java:6)
publicTwalk(FunctionsuperStream, ?extendsT>function)
java.lang.StackWalker
.getInstance(java.lang.StackWalker.Option.RETAIN_CLASS_REFERENCE)
.walk(s -> s.skip(1).limit(1).collect(Collectors.toList()))
.forEach(System.out::println);
// result
com.pivovarit.stack.StackWalker.foo(StackWalker.java:12)
轉:https://www.tuicool.com/articles/InAf6vb