我们在 Java 9 中什么时候可以使用 StackWalker.getCallerClass() 方法?
Java 9 通过使用 StackWalker API 对堆栈跟踪进行懒访问和筛选,提供了一种高效的堆栈遍历方式。 StackWalker 对象允许我们遍历和访问堆栈。这个类包含一些有用的方法,例如 walk()、forEach() 和 getCallerClass()。
getCallerClass() 方法返回调用此方法的方法所调用的类。要获取调用类实例,我们需要在获取 StackWalker 实例时使用 RETAIN_CLASS_REFERENCE 。RETAIN_CLASS_REFERENCE 保留了 StackWalker 遍历的所有类的实例。
语法
public Class<?> getCallerClass()
示例
import java.lang.StackWalker.Option;
public class StackWalkerTest {
public static void main(String args[]) {
StackWalkerTest1.test1();
}
}
class StackWalkerTest1 {
protected static void test1() {
StackWalkerTest2.test2();
}
}
class StackWalkerTest2 {
protected static void test2() {
System.out.println(StackWalker.getInstance(Option.RETAIN_CLASS_REFERENCE).getCallerClass());
}
}输出
class StackWalkerTest1
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP