दो कोड उदाहरण लें:
if(optional.isPresent()) {
//do your thing
}
if(variable != null) {
//do your thing
}
जहां तक मैं सबसे स्पष्ट अंतर बता सकता हूं कि वैकल्पिक को एक अतिरिक्त ऑब्जेक्ट बनाने की आवश्यकता है।
हालाँकि, बहुत से लोग तेजी से ऑप्शनल को अपनाने लगे हैं। वैकल्पिक बनाम शून्य जांच का उपयोग करने का क्या फायदा है?
if
बयान पिछले दशक के sooooo हैं , और हर किसी का उपयोग अबाध सार और lambdas है।
if(x.isPresent) fails_on_null(x.get)
आप टाइप सिस्टम से बाहर निकलते हैं और यह शर्त रखनी होती है कि कोड शर्त (फंक्शन कॉल) के बीच (सम्मिलित रूप से छोटी) दूरी पर "आपके सिर में" नहीं फटेगा। में optional.ifPresent(fails_on_null)
प्रकार प्रणाली आप के लिए यह गारंटी नहीं देता है, और आपको चिंता करने की जरूरत नहीं है।
Optional.ifPresent
(और अन्य विभिन्न जावा कंस्ट्रक्शन) का उपयोग करने के साथ प्रमुख दोष यह है कि आप केवल प्रभावी रूप से अंतिम चर को संशोधित कर सकते हैं और अपवादों को नहीं फेंक सकते। ifPresent
दुर्भाग्य से बचने के लिए पर्याप्त कारण है ।