স্ট্যাক ওয়াকিং API৷ কল স্ট্যাকগুলি থেকে তথ্য বের করতে এবং বের করার জন্য একটি নমনীয় প্রক্রিয়া প্রদান করতে পারে যা আমাদের অলসভাবে ফ্রেমগুলিকে ফিল্টার করতে এবং অ্যাক্সেস করতে দেয়। স্ট্যাকওয়াকার ক্লাস স্ট্যাক ওয়াকিং API-এর একটি এন্ট্রি পয়েন্ট। স্ট্যাক ট্রেস হল একটি কল স্ট্যাকের প্রতিনিধিত্ব k একটি নির্দিষ্ট সময়ে যেখানে প্রতিটি উপাদান একটি পদ্ধতি উপস্থাপন করে আমন্ত্রণ . এটিতে একটি থ্রেডের শুরু থেকে এটি তৈরি হওয়া পর্যন্ত সমস্ত আহ্বান রয়েছে৷
নীচের উদাহরণে, আমরা StackWalker API ব্যবহার করে বর্তমান থ্রেডের সমস্ত স্ট্যাক ফ্রেম মুদ্রণ/প্রদর্শন করতে পারি।
উদাহরণ
import java.lang.StackWalker.StackFrame; import java.lang.reflect.Method; import java.util.List; import java.util.stream.Collectors; public class StackWalkerTest { public static void main(String args[]) throws Exception { Method test1Method = Helper1.class.getDeclaredMethod("test1", (Class[])null); test1Method.invoke(null, (Object[]) null); } } // Helper1 class class Helper1 { protected static void test1() { Helper2.test2(); } } // Helper2 class class Helper2 { protected static void test2() { List<StackFrame> stack = StackWalker.getInstance().walk((s) -> s.collect(Collectors.toList())); for(StackFrame frame : stack) { System.out.println(frame.getClassName() + " " + frame.getLineNumber() + " " + frame.getMethodName()); } } }
আউটপুট
Helper2 23 test2 Helper1 16 test1 StackWalkerTest 9 main