एक वैकल्पिक वर्ग एक कंटेनर प्रदान करता है जिसमें गैर-शून्य . हो सकता है या नहीं भी हो सकता है मूल्य। यह वैकल्पिक वर्ग जावा 8 में कोड में स्थानों की संख्या को कम करने के लिए पेश किया गया जहां NullPointerException उत्पन्न किया जा सकता है। Java 9 ने वैकल्पिक वर्ग में तीन नए तरीके जोड़े:या () , ifPresentOrElse() और स्ट्रीम () जो हमें डिफ़ॉल्ट . से निपटने में मदद करते हैं मान।
Optional.or()
द या () जावा 9 में पेश की गई विधि और इस विधि का पैरामीटर एक कार्यात्मक इंटरफ़ेस है आपूर्तिकर्ता . यह विधि हमें हमेशा एक वैकल्पिक . देती है वह वस्तु जो खाली न हो। यदि वैकल्पिक वस्तु खाली नहीं है, तो यह वैकल्पिक . लौटाती है वस्तु ही। अन्यथा, यह एक वैकल्पिक वस्तु लौटाता है जिसे आपूर्तिकर्ता बनाता है।
उदाहरण
आयात करें वैकल्पिक<स्ट्रिंग> ऑप्ट =वैकल्पिक।अशक्त का (str); वैकल्पिक<स्ट्रिंग> परिणाम =ऑप्ट.या (() -> Optional.of ("आदित्य")); System.out.println (परिणाम); } }आउटपुट
वैकल्पिक[आदित्य]
Optional.ifPresentOrElse()
द ifPresentOrElse() जावा 9 में पेश की गई विधि। यह ifPresent() . के समान है एक अंतर के साथ विधि यह है कि हमने एक और चलाने योग्य . जोड़ा है पैरामीटर। मामले में, यदि कोई वैकल्पिक ऑब्जेक्ट खाली है, चलाने योग्य . का ऑब्जेक्ट इंटरफ़ेस निष्पादित किया जा सकता है।
उदाहरण
import java.util.Optional;पब्लिक क्लास ऑप्शनलआईएफप्रेजेंटऑरएल्सटेस्ट {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {स्ट्रिंग स्ट्र =नल; वैकल्पिक<स्ट्रिंग> ऑप्ट =वैकल्पिक।अशक्त का (str); ऑप्ट.ifPresentOrElse ( x -> System.out.println (x), () -> System.out.println ("कोई मान नहीं")); }}
आउटपुट
कोई मूल्य नहीं
Optional.stream()
Optional.stream() जावा 9 के बाद से विधि समर्थित है। इस विधि का उपयोग वैकल्पिक से एक नई स्ट्रीम ऑब्जेक्ट बनाने के लिए किया जा सकता है वस्तु। यदि किसी वैकल्पिक ऑब्जेक्ट में कोई मान होता है, तो वह उस मान वाले स्ट्रीम ऑब्जेक्ट को लौटाता है।
उदाहरण
आयात करें सूची<वैकल्पिक<स्ट्रिंग>> सूची =सूची की (वैकल्पिक.of("जय"), वैकल्पिक।खाली() , वैकल्पिक.of ("आदित्य")); स्ट्रीम<स्ट्रिंग> स्ट्रीम =सूची।स्ट्रीम ()। फ्लैटमैप (वैकल्पिक ::स्ट्रीम); स्ट्रीम.प्रत्येक के लिए (System.out::println); }}आउटपुट
जय आदित्य