Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9의 StackWalker API?


스택워커 API 모든 메소드 내에서 작업을 실행하기 위해 쉬운 필터링 및 지연 액세스를 허용합니다. Java 9에서 스택 추적 정보를 얻기 위한 효율적인 API입니다. .

StackWalker API에는 StackWalker의 세 가지 중요한 새 클래스가 있습니다. , StackWalker.StackFrameStackWalker.Option .

스택워커 - StackWalker 의 기본 클래스입니다. API . StackWalker.forEach()를 사용하여 스택 프레임을 탐색합니다. 메소드를 호출하고 StackWalker.getCallerClass()를 호출하여 효율적인 방법으로 호출자 클래스를 가져옵니다. 방법. StackWalker.walk()를 사용하여 스택 추적을 살펴보고 스택 프레임 스트림에 함수를 적용합니다. 방법.

StackWalker.StackFrame - 정적 중첩 클래스입니다. StackWalker의 메서드이며 StackWalker의 메서드 호출 반환을 나타냅니다. getDeclaringClass()와 같은 주어진 스택 프레임 정보에 액세스하는 메소드가 있습니다. , getLineNumber()

StackWalker.Option - 정적 중첩 클래스입니다. SackWalker.getInstance()를 통해 인스턴스를 생성할 때 스택 워커가 스택 프레임 정보를 구성할 수 있는 옵션을 제공합니다. .

예시

import java.util.List;
import java.util.stream.Collectors;
public class StackWalkingTest {
   public static void main(String args[]) {
      final List<StackWalker.StackFrame> stack = StackWalker.getInstance()
      .walk(s -> s.collect(Collectors.toList()));
      for(StackWalker.StackFrame sf : stack) {
         System.out.println(sf.getClassName() + "::" + sf.getMethodName() + ":" + sf.getLineNumber());
      }
   }
}

출력

StackWalkingTest::main:6