Java 9 में java.lang.StackWalker का उपयोग करके एक मानक API प्रदान किया गया है कक्षा। आलसी पहुंच . की अनुमति देकर कुशल होने के लिए डिज़ाइन किया गया यह वर्ग ढेर फ्रेम के लिए। कुछ अन्य विकल्प स्टैक ट्रेस में अनुमति देते हैं जिसमें कार्यान्वयन और/या प्रतिबिंब फ़्रेम . शामिल हैं , और यह डिबगिंग उद्देश्यों के लिए उपयोगी हो सकता है। उदाहरण के लिए, हम SHOW_REFLECT_FRAMES . जोड़ते हैं निर्माण पर स्टैकवॉकर इंस्टेंस का विकल्प, ताकि प्रतिबिंबित विधियों के फ्रेम भी मुद्रित हों।
नीचे दिए गए उदाहरण में, हम StackFrame के प्रतिबिंब फ़्रेम दिखा सकते हैं
उदाहरण
आयात करें .stream.Collectors;पब्लिक क्लास रिफ्लेक्शनफ्रेमटेस्ट {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args[]) NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { विधि फेंकता है test1Method =Test1.class.getDeclaredMethod ("टेस्ट 1", (कक्षा []) शून्य); test1Method.आह्वान (शून्य, (वस्तु []) शून्य); }}कक्षा टेस्ट1 {संरक्षित स्थैतिक शून्य परीक्षण1() { Test2.test2(); }}कक्षा टेस्ट2 { संरक्षित स्थैतिक शून्य परीक्षण2() { //प्रतिबिंब विधियां दिखाएं सूचीआउटपुट
Test2 22 test2Test1 16 test1jdk.internal.reflect.NativeMethodAccessorImpl -2 invoke0jdk.internal.reflect.NativeMethodAccessorImpl 62 इनवोकjdk.internal.reflect.DelegatingMethodAccessorImpl 43 इनवोकजावा.लैंग।