> Java > java지도 시간 > 본문

Java 9의 StackWalker API?

PHPz
풀어 주다: 2023-09-11 13:21:08
앞으로
862명이 탐색했습니다.

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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿