Heim  >  Artikel  >  Java  >  Wie drucke ich alle Eigenschaften in der StackFrame-API in Java 9?

Wie drucke ich alle Eigenschaften in der StackFrame-API in Java 9?

王林
王林nach vorne
2023-08-28 08:37:02587Durchsuche

Die

在Java 9中如何打印StackFrame API中的所有属性?

StackWalker API ist eine neue Funktion in Java 9, die die Leistung der VorgängerStack-Elemente verbessert. Es kann auch eine Möglichkeit bieten, Stapelelemente in „Ausnahmesituationen“ zu filtern oder das „Anwendungsverhalten“ zu verstehen. In Java 9 ist der Zugriff auf Stack-Traces sehr eingeschränkt und die gesamten Stack-Informationen stehen auf einmal zur Verfügung. Im Beispiel unten müssen wir alle Eigenschaften im Stapelrahmen drucken Beispiel

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>);
      });
   }
}
Ausgabe

<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>

Das obige ist der detaillierte Inhalt vonWie drucke ich alle Eigenschaften in der StackFrame-API in Java 9?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen