StackWalker API Allows easy filtering and delayed access to perform tasks in any method. It is an efficient API in Java 9 for getting stack trace information.
Three important new classes have been added to the StackWalker API: StackWalker, StackWalker.StackFrame and StackWalker.Option.
StackWalker − It is the main class in >StackWalker API. We use the StackWalker.forEach() method to traverse the stack frame and efficiently obtain the caller class by calling the StackWalker.getCallerClass() method. We use the StackWalker.walk() method to walk the stack trace and apply a function on the stack frame stream.
StackWalker.StackFrame − It is a static nested class of StackWalker, which represents the method call return of StackWalker. It has methods to access the information of a given stack frame, such as getDeclaringClass(), getLineNumber(), etc.
StackWalker.Option - It is a static nested class of StackWalker. When we create an instance through SackWalker.getInstance(), Provides the stack walker with options to configure stack frame information.
import java.util.List; import java.util.stream.Collectors; public class StackWalkingTest { public static void main(String args[]) { final <strong>List<StackWalker.StackFrame></strong> stack = StackWalker.<strong>getInstance()</strong> .<strong>walk</strong>(s -> s.<strong>collect</strong>(Collectors.toList())); for(<strong>StackWalker.StackFrame</strong> sf : stack) { System.out.println(sf.<strong>getClassName()</strong> + "::" + sf.<strong>getMethodName()</strong> + ":" + sf.<strong>getLineNumber()</strong>); } } }
<strong>StackWalkingTest::main:6</strong>
The above is the detailed content of StackWalker API in Java 9?. For more information, please follow other related articles on the PHP Chinese website!