Java 9 中的 StackWalker API?
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的静态嵌套类,当我们通过StackWalker.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
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP