在Java 9中,我们什么时候可以使用StackWalker.getCallerClass()方法?
Java 9 为延迟访问提供了一种有效的堆栈遍历方式,使用 StackWalker API 过滤堆栈跟踪。 StackWalker 的对象可以让我们遍历以及对堆栈的访问。此类包含一些有用的方法,例如 walk()、forEach() 和 getCallerClass()。
getCallerClass() 方法返回调用该方法的类。为了掌握调用类实例,我们在获取 StackWalker 实例时需要 RETAIN_CLASS_REFERENCE 。 RETAIN_CLASS_REFERENCE 保留 StackWalker 遍历的所有类的实例。
语法
<strong>public Class<?><!--?--> getCallerClass()</strong>
示例
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(<strong>StackWalker.getInstance</strong>(<strong>Option.RETAIN_CLASS_REFERENCE</strong>).<strong>getCallerClass()</strong>); } }
输出
<strong>class StackWalkerTest1</strong>
以上就是在Java 9中,我们什么时候可以使用StackWalker.getCallerClass()方法?的详细内容,更多请关注其它相关文章!