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