Java 9 中的 StackWalker API?
javaobject oriented programmingprogramming更新于 2025/7/15 17:48:17
StackWalker API 允许轻松过滤和延迟访问以在任何方法内执行任务。它是 Java 9 中获取堆栈跟踪信息的有效 API。
StackWalker API 中有三个新的重要类:StackWalker、 StackWalker.StackFrame 和 StackWalker.Option。
StackWalker − 它是 StackWalker API 中的主要类。我们使用 StackWalker.forEach() 方法遍历堆栈框架,并通过调用 StackWalker.getCallerClass() 方法以高效的方式获取调用者类。我们使用 StackWalker.walk() 方法遍历堆栈跟踪并在堆栈框架流上应用函数。
StackWalker.StackFrame − 它是 StackWalker 的一个 静态嵌套类,表示 StackWalker 返回的方法调用。它具有访问给定堆栈框架信息的方法,如 getDeclaringClass()、getLineNumber() 等。
StackWalker.Option − 它是 StackWalker 的 静态嵌套类,并为堆栈遍历器提供选项,以便在我们通过 SackWalker.getInstance() 创建实例时配置堆栈框架信息。
示例
import java.util.List;
import java.util.stream.Collectors;
public class StackWalkingTest {
public static void main(String args[]) {
final List<StackWalker.StackFrame> stack = StackWalker.getInstance()
.walk(s -> s.collect(Collectors.toList()));
for(StackWalker.StackFrame sf : stack) {
System.out.println(sf.getClassName() + "::" + sf.getMethodName() + ":" + sf.getLineNumber());
}
}
}
输出
StackWalkingTest::main:6
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

