StackWalker API は、Java 9 の新機能であり、前世代の スタック パフォーマンス トラックを改善します。要素。また、例外状況でスタック要素をフィルタリングしたり、アプリケーション動作を理解したりする方法も提供できます。 Java 9 では、スタック トレースへのアクセスは非常に制限されており、スタック情報全体が一度に利用可能になります。
次の例では、スタック フレーム内のすべての属性を出力する必要があります p>
import java.lang.StackWalker.StackFrame; import java.util.*; import java.util.stream.*; import java.lang.StackWalker.Option; public class AllAttributesTest { public static void main(String args[]) { System.out.println("Java 9 Stack Walker API - Print all attributes in stack frame"); <strong>StackWalker </strong>newWalker = StackWalker.getInstance(<strong>Option</strong>.<strong>RETAIN_CLASS_REFERENCE</strong>); <strong>List<StackWalker.StackFrame></strong> stackFrames = newWalker.walk(frames -> frames.limit(1).collect(<strong>Collectors.toList()</strong>)); stackFrames.forEach(test-> { System.out.printf("[Bytecode Index] %d%n", test.<strong>getByteCodeIndex()</strong>); System.out.printf("[Class Name] %s%n", test.<strong>getClassName()</strong>); System.out.printf("[Declaring Class] %s%n", test.<strong>getDeclaringClass()</strong>); System.out.printf("[File Name] %s%n", test.<strong>getFileName()</strong>); System.out.printf("[Method Name] %s%n", test.<strong>getMethodName()</strong>); System.out.printf("[Is Native] %b%n", test.<strong>isNativeMethod()</strong>); System.out.printf("[Line Number] %d%n", test.<strong>getLineNumber()</strong>); }); } }
<strong>Java 9 Stack Walker API - Print all attributes in stack frame [Bytecode Index] 21 [Class Name] AllAttributesTest [Declaring Class] class AllAttributesTest [File Name] AllAttributesTest.java [Method Name] main [Is Native] false [Line Number] 10</strong>
以上がJava 9 の StackFrame API のすべてのプロパティを出力するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。