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

API StackWalker trong Java 9?


StackWalker API cho phép dễ dàng lọc và truy cập lười biếng để thực thi các tác vụ trong bất kỳ phương pháp nào. Đây là một API hiệu quả để lấy thông tin theo dõi ngăn xếp trong Java 9 .

Có ba lớp quan trọng mới trong API StackWalker: StackWalker , StackWalker.StackFrame StackWalker.Option .

StackWalker - Đây là lớp chính trong StackWalker API . Chúng tôi duyệt qua các khung ngăn xếp bằng cách sử dụng StackWalker.forEach () và nhận lớp người gọi theo cách hiệu quả bằng cách gọi StackWalker.getCallerClass () phương pháp. Chúng tôi đi qua các dấu vết ngăn xếp và áp dụng một hàm trên một luồng các khung ngăn xếp bằng cách sử dụng StackWalker.walk () phương pháp.

StackWalker.StackFrame - Nó là một lớp lồng nhau tĩnh của StackWalker và biểu diễn trả về lời gọi phương thức bởi StackWalker. Nó có các phương thức để truy cập thông tin khung ngăn xếp nhất định như getDec Tuyên bố () , getLineNumber () và v.v.

StackWalker.Option - Nó là một lớp lồng nhau tĩnh của StackWalker và cung cấp các tùy chọn cho stack walker để định cấu hình thông tin khung ngăn xếp khi chúng tôi tạo một phiên bản thông qua SackWalker.getInstance () .

Ví dụ

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

Đầu ra

StackWalkingTest::main:6