什么时候可以在Java 9中使用StackWalker.getCallerClass()方法?
Java9为延迟访问提供了一种有效的堆栈遍历方式,使用StackWalkerAPI过滤堆栈跟踪。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
热门推荐
10 离校退群祝福语简短
11 老师开工仪式祝福语简短
12 祝寿时祝福语简短精辟
13 职场祝福语大全 简短精辟
14 中式蛋糕开业祝福语简短
15 城堡文案简短婚礼祝福语
16 妈妈给宝贝祝福语简短
17 父母生孩子祝福语简短
18 整形机构开业祝福语简短