StackWalker API का अवलोकन
Java 9 ने StackWalker API पेश किया जो स्टैक वॉकिंग के लिए एक कुशल, लेजी और फिल्टर करने योग्य तंत्र प्रदान करता है। StackWalker ऑब्जेक्ट स्टैक फ्रेम्स को ट्रैवर्स और एक्सेस करने की अनुमति देता है। इसमें walk(), forEach(), और getCallerClass() जैसे उपयोगी मेथड्स शामिल हैं।
getCallerClass() मेथड
getCallerClass() उस क्लास को लौटाता है जो उस मेथड को कॉल करती है जिसमें यह मेथड मौजूद होता है। कॉलिंग क्लास इंस्टेंस प्राप्त करने के लिए, StackWalker इंस्टेंस प्राप्त करते समय RETAIN_CLASS_REFERENCE ऑप्शन सक्षम करना आवश्यक है। यह ऑप्शन StackWalker द्वारा वॉक की गई सभी क्लासेस के रेफरेंस को बनाए रखता है।
सिंटैक्स
public Class<?> getCallerClass()
उदाहरण
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());
}
}
आउटपुट
class StackWalkerTest1
यहां StackWalkerTest2.test2() से getCallerClass() कॉल करने पर StackWalkerTest1 क्लास प्राप्त होती है, क्योंकि वही तत्काल कॉलर है।