Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा 9 में Optional क्लास में कौन से नए मेथड जोड़े गए हैं?

एक Optional क्लास एक कंटेनर प्रदान करता है जिसमें नॉन-नल मान हो भी सकता है और नहीं भी। यह Optional क्लास जावा 8 में पेश की गई थी ताकि कोड में उन स्थानों की संख्या कम की जा सके जहां NullPointerException उत्पन्न हो सकता है। जावा 9 ने Optional क्लास में तीन नए मेथड जोड़े: or(), ifPresentOrElse() और stream() जो हमें डिफ़ॉल्ट मान से निपटने में मदद करते हैं।

Optional.or()

or() मेथड जावा 9 में पेश किया गया है और इस मेथड का पैरामीटर एक फंक्शनल इंटरफेस Supplier है। यह मेथड हमेशा हमें एक Optional ऑब्जेक्ट देता है जो खाली नहीं है। यदि Optional ऑब्जेक्ट खाली नहीं है, तो यह Optional ऑब्जेक्ट को स्वयं लौटाता है। अन्यथा, यह एक Optional ऑब्जेक्ट लौटाता है जो Supplier बनाता है।

उदाहरण

import java.io.IOException;
import java.util.Optional;

public class OptionalOrMethodTest {
    public static void main(String[] args) throws IOException {
        String str = null;
        Optional opt = Optional.ofNullable(str);
        Optional result = opt.or(() -> Optional.of("Adithya"));
        System.out.println(result);
    }
}

आउटपुट

Optional[Adithya]

Optional.ifPresentOrElse()

ifPresentOrElse() मेथड जावा 9 में पेश किया गया है। यह ifPresent() मेथड के समान है जिसमें एक अंतर है कि हमने एक और Runnable पैरामीटर जोड़ा है। यदि कोई Optional ऑब्जेक्ट खाली है, तो Runnable इंटरफेस का ऑब्जेक्ट निष्पादित किया जा सकता है।

उदाहरण

import java.util.Optional;

public class OptionalIfPresentOrElseTest {
    public static void main(String[] args) {
        String str = null;
        Optional opt = Optional.ofNullable(str);
        opt.ifPresentOrElse(
            x -> System.out.println(x),
            () -> System.out.println("No value"));
    }
}

आउटपुट

No value

Optional.stream()

Optional.stream() मेथड जावा 9 से समर्थित है। इस मेथड का उपयोग Optional ऑब्जेक्ट से एक नया स्ट्रीम ऑब्जेक्ट बनाने के लिए किया जा सकता है। यदि कोई Optional ऑब्जेक्ट मान रखता है, तो यह उस मान वाली स्ट्रीम ऑब्जेक्ट लौटाता है।

उदाहरण

import java.io.IOException;
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;

public class OptionalStreamMethodTest {
    public static void main(String[] args) throws IOException {
        List> list = List.of(
            Optional.of("Jai"),
            Optional.empty(),
            Optional.of("Adithya"));
        Stream stream = list.stream().flatMap(Optional::stream);
        stream.forEach(System.out::println);
    }
}

आउटपुट

Jai Adithya
  1. जावा 9 में @Deprecated एनोटेशन में क्या सुधार हैं? जावा 9 में @Deprecated एनोटेशन में क्या सुधार हैं?

    कोई भी तत्व जिसे @Deprecated से एनोटेट किया जा सकता है, यह दर्शाता है कि इस विशेष तत्व का उपयोग निम्नलिखित कारणों से नहीं किया जाना चाहिए: इसका उपयोग करना जोखिम भरा है और त्रुटियों का कारण बन सकता है। भविष्य के संस्करणों में असंगत हो सकता है। भविष्य के संस्करणों में हटाया जा सकता है। एक बेहतर और अध

  1. Java में Cursor क्लास का महत्व क्या है? Java में Cursor क्लास का महत्व क्या है?

    एक Cursor, Object क्लास का एक सबक्लास है और इसे स्क्रीन पर पॉइंट या इंडिकेटर के रूप में परिभाषित किया जा सकता है। एक Cursor का उपयोग सिस्टम से इनपुट चुनने के लिए किया जाता है जिसे यूजर माउस के साथ संचालित करता है। Cursor क्लास में उपलब्ध विभिन्न प्रकार के कर्सर हैं: DEFAULT_CURSOR, CROSSHAIR_CURSOR,

  1. - Java में क्लासेस के विभिन्न प्रकार क्या हैं?

    Java में क्लासेस के प्रकार कंक्रीट क्लास कोई भी सामान्य क्लास जिसमें कोई एब्सट्रैक्ट मेथड न हो या एक क्लास जिसमें अपने पैरेंट क्लास या इंटरफेस के सभी मेथड्स और अपने मेथड्स का इम्प्लीमेंटेशन हो, कंक्रीट क्लास है। उदाहरण public class Concrete { // कंक्रीट क्लास static int product(int a, int b)