স্ট্যাক ওয়াকিং 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