我们何时可以在 Java 9 中使用 StackWalker.getCallerClass() 方法?
javaobject oriented programmingprogramming更新于 2025/9/19 15:08:17
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
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

