StackWalker API 를 사용하면 어떤 방식으로든 작업을 수행할 수 있도록 간편한 필터링과 지연된 액세스가 가능합니다. 스택 추적 정보를 얻기 위한 Java 9의 효율적인 API입니다.
StackWalker API에 세 가지 중요한 새 클래스인 StackWalker, StackWalker.StackFrame 및 StackWalker.Option이 추가되었습니다.
StackWalker − >StackWalker API의 메인 클래스입니다. StackWalker.forEach() 메서드를 사용하여 스택 프레임을 순회하고 StackWalker.getCallerClass() 메서드를 호출하여 호출자 클래스를 효율적으로 가져옵니다. StackWalker.walk() 메서드를 사용하여 스택 추적을 탐색하고 스택 프레임 스트림에 함수를 적용합니다.
StackWalker.StackFrame − StackWalker의 메소드 호출 반환을 나타내는 StackWalker의 정적 중첩 클래스입니다. getDeclaringClass(), getLineNumber() 등과 같이 특정 스택 프레임의 정보에 액세스하는 메서드가 있습니다.
StackWalker.Option - StackWalker의 정적 중첩 클래스입니다. SackWalker.getInstance()를 통해 인스턴스를 생성하면 스택 프레임 정보를 구성하는 옵션이 스택 워커에 제공됩니다.
import java.util.List; import java.util.stream.Collectors; public class StackWalkingTest { public static void main(String args[]) { final <strong>List<StackWalker.StackFrame></strong> stack = StackWalker.<strong>getInstance()</strong> .<strong>walk</strong>(s -> s.<strong>collect</strong>(Collectors.toList())); for(<strong>StackWalker.StackFrame</strong> sf : stack) { System.out.println(sf.<strong>getClassName()</strong> + "::" + sf.<strong>getMethodName()</strong> + ":" + sf.<strong>getLineNumber()</strong>); } } }
<strong>StackWalkingTest::main:6</strong>
위 내용은 Java 9의 StackWalker API?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!