>  기사  >  Java  >  Java 9의 StackWalker API?

Java 9의 StackWalker API?

PHPz
PHPz앞으로
2023-09-11 13:21:08862검색

Java 9中的StackWalker API?

StackWalker API 를 사용하면 어떤 방식으로든 작업을 수행할 수 있도록 간편한 필터링과 지연된 액세스가 가능합니다. 스택 추적 정보를 얻기 위한 Java 9의 효율적인 API입니다.

StackWalker API에 세 가지 중요한 새 클래스인 StackWalker, StackWalker.StackFrameStackWalker.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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제