Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा 9 में स्टैकफ्रेम में कुछ कक्षाओं को कैसे छोड़ें?


StackWalker API Java 9 . में पेश किया गया है , और यह किसी भी समय वर्तमान थ्रेड के स्टैक ट्रेस का एक स्नैपशॉट देता है और इसके ऊपर चलने के तरीके हैं। StackWalker . का उपयोग करने का लाभ थ्रेड पर क्लास ::getStackTrace () फ़िल्टर के लिए है या छोड़ें कुछ वर्ग और कक्षा को स्वयं घोषित करने का उदाहरण प्राप्त करें और पूर्ण स्टैक ट्रेस को स्वयं खींचने के बजाय या तो छोटा स्टैक ट्रेस या पूर्ण स्टैक ट्रेस प्राप्त करें।

नीचे दिए गए उदाहरण में, हम उपयोग कर सकते हैं java.util.stream.Stream.skip() स्टैक फ्रेम्स को छोड़ने की विधि।

उदाहरण

आयात करें शून्य मुख्य (स्ट्रिंग args []) {नया StackWalkerSkipTest ()। स्टैकवॉक (); } निजी वर्ग StackWalker4 { public void stackWalk4() { सूची फ्रेमआफ्टरस्किप =StackWalker.getInstance(StackWalker.Option.RETAIN_CLASS_REFERENCE ).वॉक((ओं) ->एस.छोड़ें (2).संग्रह(कलेक्टर.toList() )); System.out.println ("छोड़ने के बाद फ्रेम:\ n" + फ्रेमआफ्टरस्किप.toString ()); }} सार्वजनिक शून्य स्टैकवॉक () {नया स्टैकवॉकर 1 ()। स्टैकवॉक 1 (); } निजी वर्ग स्टैकवॉकर 1 {सार्वजनिक शून्य स्टैकवॉक 1 () {नया स्टैकवॉकर 2 ()। स्टैकवॉक 2 (); } } निजी वर्ग StackWalker2 {सार्वजनिक शून्य stackWalk2 () {नया StackWalker3 ()। StackWalk3 (); }} निजी वर्ग StackWalker3 {सार्वजनिक शून्य स्टैकवॉक 3 () {नया स्टैकवॉकर 4 ()। स्टैकवॉक 4 (); } }}

आउटपुट

छोड़ने के बाद के फ्रेम :[StackWalkerSkipTest$StackWalker2.stackWalk2(StackWalkerSkipTest.java:29),StackWalkerSkipTest$StackWalker1.stackWalk1(StackWalkerSkipTest.java:24),StackWalkerSkipTest.java:24), मुख्य(StackWalkerSkipTest.java:9)]
  1. - जावा में पैकेज

    जावा में पैकेजों का उपयोग नामकरण विवादों को रोकने, पहुंच को नियंत्रित करने, कक्षाओं, इंटरफेस, एन्यूमरेशन और एनोटेशन आदि की खोज/पता लगाने और उपयोग को आसान बनाने के लिए किया जाता है। एक पैकेज को संबंधित प्रकारों (वर्ग, इंटरफेस, गणना, और एनोटेशन) के समूह के रूप में परिभाषित किया जा सकता है जो पहुंच सु

  1. - जावा में अन्य पैकेज में कक्षाओं का उपयोग कैसे करें

    आप एक उदाहरण का उपयोग करके इसे समझ सकते हैं जहां पेरोल पैकेज में एक बॉस वर्ग परिभाषित किया गया है। package payroll; public class Boss {    public void payEmployee(Employee e) {       e.mailCheck();    } } यदि कर्मचारी वर्ग पेरोल पैकेज में नहीं है? बॉस वर्ग को एक अल

  1. - जावा में JSON को कैसे पार्स करें

    इस ट्यूटोरियल में हम देखेंगे कि विभिन्न पुस्तकालयों का उपयोग करके जावा में JSON को कैसे पार्स किया जाए। JSON जावास्क्रिप्ट ऑब्जेक्ट नोटेशन के लिए खड़ा है, और यह जावास्क्रिप्ट के सबसेट पर आधारित है। डेटा-एक्सचेंज प्रारूप के रूप में, यह वेब प्रोग्रामिंग में व्यापक रूप से उपयोग किया जाता है। यहां हम