Java 9 ने आलसी पहुंच के लिए स्टैक वॉकिंग का एक कुशल तरीका प्रदान किया है, StackWalker API का उपयोग करके स्टैक ट्रेस को फ़िल्टर करना। StackWalker . का एक ऑब्जेक्ट हमें ट्रैवर्स और स्टैक तक पहुंचने की अनुमति दे सकता है। इस वर्ग में कुछ उपयोगी विधियाँ हैं जैसे चलना () , प्रत्येक के लिए () , और getCallerClass() ।
getCallerClass() विधि उस वर्ग को लौटाती है जो इस विधि को कॉल करने वाली विधि को आमंत्रित करती है। कॉलिंग क्लास इंस्टेंस को पकड़ने के लिए, हमें RETAIN_CLASS_REFERENCE की आवश्यकता है स्टैकवॉकर उदाहरण प्राप्त करते समय। RETAIN_CLASS_REFERENCE स्टैकवॉकर द्वारा चलाए गए सभी वर्गों का एक उदाहरण रखता है।
सिंटैक्स
पब्लिक क्लास> getCallerClass()
उदाहरण
आयात करें }}वर्ग StackWalkerTest1 {संरक्षित स्थैतिक शून्य परीक्षण1 () { StackWalkerTest2.test2 (); }}वर्ग StackWalkerTest2 {संरक्षित स्थैतिक शून्य परीक्षण2() { System.out.println(StackWalker.getInstance (विकल्प.RETAIN_CLASS_REFERENCE ).getCallerClass() ); }}आउटपुट
वर्ग StackWalkerTest1