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

Java 9에서 StackWalker.getCallerClass() 메서드를 언제 사용할 수 있습니까?


Java 9는 StackWalker API를 사용하여 스택 추적을 필터링하여 지연 액세스를 위한 효율적인 스택 워킹 방법을 제공했습니다. StackWalker 의 개체 스택을 탐색하고 액세스할 수 있습니다. 이 클래스에는 walk()와 같은 몇 가지 유용한 메서드가 포함되어 있습니다. , forEach()getCallerClass() .

getCallerClass() 메서드는 이 메서드를 호출하는 메서드를 호출하는 클래스를 반환합니다. 호출하는 클래스 인스턴스를 확보하려면 RETAIN_CLASS_REFERENCE 가 필요합니다. StackWalker 인스턴스를 가져오는 동안. RETAIN_CLASS_REFERENCE StackWalker가 걷는 모든 클래스의 인스턴스를 유지합니다.

구문

public Class<?> getCallerClass()

예시

import java.lang.StackWalker.Option;

public class StackWalkerTest {
   public static void main(String args[]) {
      StackWalkerTest1.test1();
   }
}

class StackWalkerTest1 {
   protected static void test1() {
      StackWalkerTest2.test2();
   }
}

class StackWalkerTest2 {
   protected static void test2() {
      System.out.println(StackWalker.getInstance(Option.RETAIN_CLASS_REFERENCE).getCallerClass());
   }
}

출력

class StackWalkerTest1