दोनों Optional.ifPresentOrElse() और Optional.or() इसकी कार्यक्षमता में सुधार के लिए जावा 9 संस्करण में विधियों को पेश किया गया है। Optional.ifPresentOrElse() विधि जांचता है कि क्या मान मौजूद है, मूल्य के साथ कार्रवाई लागू करें, अन्यथा खाली कार्रवाई लौटाएं जबकि Optional.or() विधि जांचता है कि क्या मूल्य मौजूद है, वापसी विकल्प में मूल्य है, अन्यथा वापसी वैकल्पिक आपूर्तिकर्ता funciton पर लागू होता है। Optional.ifPresentOrElse() विधि में दो पैरामीटर होते हैं, उपभोक्ता और चलाने योग्य जबकि Optional.or() विधि में केवल एक पैरामीटर होता है, आपूर्तिकर्ता ।
Optional.ifPresentOrElse():
. का सिंटैक्ससार्वजनिक शून्य ifPresentOrElse(Consumer super T> action, Runnable emptyAction)
उदाहरण
आयात करें वैकल्पिकIsEmpty (); } निजी स्थैतिक शून्य वैकल्पिकIsPresent() { वैकल्पिक<स्ट्रिंग> वैकल्पिक =Optional.of ("परीक्षण"); AtomicInteger SuccessCounter =नया AtomicInteger (); AtomicInteger खालीऑप्शनल्सकाउंटर =नया AtomicInteger (); वैकल्पिक।ifPresentOrElse (x -> SuccessCounter.incrementAndGet (), () -> emptyOptionalsCounter.incrementAndGet ()); System.out.println (successCounter.get ()); System.out.println (खालीOptionalsCounter.get ()); } निजी स्थैतिक शून्य वैकल्पिकIsEmpty() { वैकल्पिक वैकल्पिक =Optional.empty(); AtomicInteger SuccessCounter =नया AtomicInteger (); AtomicInteger खालीऑप्शनल्सकाउंटर =नया AtomicInteger (); वैकल्पिक।ifPresentOrElse (x -> SuccessCounter.incrementAndGet (), () -> emptyOptionalsCounter.incrementAndGet ()); System.out.println (successCounter.get ()); System.out.println(emptyOptionalsCounter.get()) }}आउटपुट
1001
Optional.or():
. का सिंटैक्ससार्वजनिक वैकल्पिकया(आपूर्तिकर्ता वैकल्पिक बढ़ाता है T>> आपूर्तिकर्ता बढ़ाता है)
उदाहरण
आयात java.util.Optional; सार्वजनिक वर्ग वैकल्पिकOrMethodTest {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग args []) {वैकल्पिकIsPresent (); वैकल्पिकIsEmpty (); } निजी स्थैतिक शून्य वैकल्पिकIsPresent() { वैकल्पिक<स्ट्रिंग> वैकल्पिक1 =Optional.of ("टेस्ट 1"); वैकल्पिक<स्ट्रिंग> वैकल्पिक2 =Optional.of ("टेस्ट 2"); वैकल्पिक<स्ट्रिंग > वैकल्पिक3 =वैकल्पिक1.या (() -> वैकल्पिक 2); System.out.println (Optional3.get ()); } निजी स्थैतिक शून्य वैकल्पिकIsEmpty() { वैकल्पिक<स्ट्रिंग> वैकल्पिक1 =Optional.खाली (); वैकल्पिक<स्ट्रिंग> वैकल्पिक2 =Optional.of ("टेस्ट 2"); वैकल्पिक<स्ट्रिंग> वैकल्पिक3 =वैकल्पिक1.या (() -> वैकल्पिक 2); System.out.println (Optional3.get ()); }}
आउटपुट
Test1Test2