Computer >> Máy Tính >  >> Lập trình >> Java

Khi nào chúng ta có thể sử dụng phương thức StackWalker.getCallerClass () trong Java 9?


Java 9 đã cung cấp một cách hiệu quả để di chuyển ngăn xếp cho truy cập lười biếng, lọc theo dõi ngăn xếp bằng cách sử dụng API StackWalker. Một đối tượng của StackWalker có thể cho phép chúng tôi đi qua và truy cập vào các ngăn xếp. Lớp này chứa một số phương thức hữu ích như walk () , forEach () getCallerClass () .

getCallerClass () phương thức trả về lớp gọi phương thức gọi phương thức này. Để nắm bắt việc gọi phiên bản lớp, chúng tôi cần RETAIN_CLASS_REFERENCE trong khi nhận phiên bản StackWalker. RETAIN_CLASS_REFERENCE giữ lại một phiên bản của tất cả các lớp được StackWalker thực hiện.

Cú pháp

public Class<?> getCallerClass()

Ví dụ

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());
   }
}

Đầu ra

class StackWalkerTest1