नल-प्रोन "गेट" कॉल्स की श्रृंखलाओं को सुरक्षित रूप से नेविगेट करना
जटिल कोडबेस में, एकाधिक "गेट" कॉल्स को चेन करना एक प्रजनन स्थल बन सकता है NullPointerExceptions के लिए। संभावित शून्य मानों से सुरक्षा के लिए, डेवलपर्स अक्सर प्रत्येक मध्यवर्ती ऑब्जेक्ट के लिए वर्बोज़ नल चेक का सहारा लेते हैं।
जावा 8 के वैकल्पिक वर्ग के साथ, हमारे पास एक शानदार समाधान है जिसे वैकल्पिक श्रृंखला के रूप में जाना जाता है। वैकल्पिक रैपिंग हमें कच्चे टी के बजाय एक वैकल्पिकउदाहरण के लिए, "प्राप्त करें" कॉल की निम्नलिखित श्रृंखला पर विचार करें:
house. getFloor(0).getWall(WEST).getDoor().getDoorknob();NullPointerExceptions से बचने के लिए, आप निम्नलिखित null का उपयोग कर सकते हैं जाँच:if (house != null && house.getFloor(0) != null && house.getFloor(0).getWall(WEST) != null && house.getFloor(0).getWall(WEST) .getDoor() != null) ...हालाँकि, वैकल्पिक श्रृंखलाओं का उपयोग करके, आप इसे सरल बना सकते हैं to:Optional.ofNullable(house) .map(h -> h.getFloor(0)) .map(मंजिल -> मंजिल.getWall(पश्चिम)) .map(दीवार -> दीवार.getDoor()) .map(door ->door.getDoorknob());if (house != null && house.getFloor(0) != null && house.getFloor(0).getWall(WEST) != null && house.getFloor(0).getWall(WEST).getDoor() != null) ...आइए एक उदाहरण के साथ वैकल्पिक श्रृंखलाओं की शक्ति का वर्णन करें:
Optional.ofNullable(house) .map(h -> h.getFloor(0)) .map(floor -> floor.getWall(WEST)) .map(wall -> wall.getDoor()) .map(door -> door.getDoorknob());System.out.println(''----- प्रारंभ नहीं हुआ! -----'); वैकल्पिक.ofNullable(नया बाहरी()) ... //वैकल्पिक मानचित्रों की छोड़ी गई श्रृंखला .ifPresent(foo -> System.out.println("foo: " foo)); // कोई प्रिंट नहीं System.out.println(''----- आइए आरंभ करें! -----'); वैकल्पिक.ofNullable(नया आउटरइनिट()) ... //वैकल्पिक मानचित्रों की छोड़ी गई श्रृंखला .ifPresent(foo -> System.out.println("foo: " foo)); //प्रिंट करेगा!
इस उदाहरण में, जब ऑब्जेक्ट प्रारंभ किए जाते हैं, तो वैकल्पिक श्रृंखला खूबसूरती से शून्य को संभालती है, जिसके परिणामस्वरूप एक सफल प्रिंट होता है। वैकल्पिक श्रृंखलाओं के बिना, एक NullPointerException घटित होती।
वैकल्पिक श्रृंखलाएं न केवल शून्य हैंडलिंग को सरल बनाती हैं बल्कि कोड पठनीयता और रखरखाव में भी सुधार करती हैं। वैकल्पिक का लाभ उठाकर, आप "प्राप्त करें" कॉल की श्रृंखलाओं को सुरक्षित रूप से नेविगेट कर सकते हैं, स्पष्ट शून्य जांच के बोझ को कम कर सकते हैं और अपने कोडबेस की समग्र मजबूती को बढ़ा सकते हैं।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3