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() メソッドはいつ使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。