चेनिंग गेटर्स और हैंडलिंग NullPointerExceptions
नेस्टेड ऑब्जेक्ट्स से डेटा पुनर्प्राप्त करने के लिए गेटर कॉल की एक श्रृंखला निष्पादित करते समय, शून्य जांच करना आवश्यक है NullPointerExceptions से बचने के लिए। वस्तुओं के कई स्तरों के साथ व्यवहार करते समय यह जल्दी से क्रियात्मक और अस्वाभाविक हो सकता है। आगे बढ़ने से पहले शून्य के लिए श्रृंखला। हालाँकि, यह विधि बोझिल हो सकती है और इसे बनाए रखना मुश्किल हो सकता है।
, जो बताता है कि विधियों को केवल उन वस्तुओं पर अन्य विधियों को कॉल करना चाहिए जिन्हें वे सीधे संदर्भित करते हैं। वस्तुओं को उनके तात्कालिक संदर्भ से परे एक्सेस करके, यह विधि शामिल वर्गों के एनकैप्सुलेशन का उल्लंघन करती है।वैकल्पिक (जावा 8) का उपयोग करना
सौभाग्य से, जावा 8 ने वैकल्पिक वर्ग की शुरुआत की , जो गेटर्स की श्रृंखला में नल को संभालने का एक अधिक सुरुचिपूर्ण और प्रकार-सुरक्षित तरीका प्रदान करता है। वैकल्पिक संभवतः शून्य मान का प्रतिनिधित्व करता है और इसमें शामिल मूल्य को मैप करने और फ़िल्टर करने के तरीके प्रदान करता है। वैकल्पिक.ofNullable() श्रृंखला में पहले ऑब्जेक्ट पर। यह एक वैकल्पिक ऑब्जेक्ट बनाता है जो मान या शून्य का प्रतिनिधित्व करता है। फिर आप मूल्य पर गेटर कॉल लागू करने के लिए मैप() संचालन को श्रृंखलाबद्ध कर सकते हैं, और वैकल्पिक स्वचालित रूप से शून्य जांच को संभाल लेगा। .map(house -> house.getFloor(0)) .map(फ़्लोरज़ीरो -> फ़्लोरज़ीरो.गेटवॉल(वेस्ट)) .मैप(वॉलवेस्ट -> वॉलवेस्ट.गेटडूर()) .map(door ->door.getDoorknob());Safety and Encapsulation
यह दृष्टिकोण न केवल कोड को सरल बनाता है, बल्कि प्रकार की सुरक्षा भी सुनिश्चित करता है। यदि आप पहले यह जाँचे बिना कि यह शून्य है या नहीं, वैकल्पिक वर्ग एक अपवाद फेंक देगा यदि आप इसके द्वारा दर्शाए गए मान तक पहुँचने का प्रयास करते हैं। इसके अतिरिक्त, यह शामिल वर्गों के एनकैप्सुलेशन को बनाए रखता है, क्योंकि आप केवल आपके द्वारा संदर्भित वस्तुओं पर सीधे तरीकों तक पहुंच रहे हैं।
निष्कर्ष
हालांकि यह कभी-कभी आवश्यक हो सकता है एलओडी का उल्लंघन करने पर, आमतौर पर गेटर्स को चेन करते समय इफ स्टेटमेंट के अत्यधिक नेस्टिंग से बचने की सिफारिश की जाती है। इसके बजाय, नल को अधिक सुरुचिपूर्ण और प्रकार-सुरक्षित तरीके से संभालने के लिए वैकल्पिक वर्ग का उपयोग करने पर विचार करें।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3