স্ট্যাকওয়াকার API ৷ সহজ ফিল্টারিং এবং অলস অ্যাক্সেস যে কোনো পদ্ধতির মধ্যে কাজ চালানোর অনুমতি দেয়. এটি জাভা 9-এ স্ট্যাক ট্রেস তথ্য পাওয়ার জন্য একটি দক্ষ API .
StackWalker API-এ তিনটি নতুন গুরুত্বপূর্ণ ক্লাস রয়েছে:StackWalker , StackWalker.StackFrame এবং StackWalker.Option .
স্ট্যাকওয়াকার - এটি 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 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