কম্পিউটার

জাভা 9 এ Optional.ifPresentOrElse() এবং Optional.or() পদ্ধতির মধ্যে পার্থক্য?


উভয়ই Optional.ifPresentOrElse() এবং Optional.or() এর কার্যকারিতা উন্নত করার জন্য জাভা 9 সংস্করণে পদ্ধতি চালু করা হয়েছে। Optional.ifPresentOrElse() পদ্ধতি চেক করে যে মান উপস্থিত আছে কিনা, মান সহ ক্রিয়া প্রয়োগ করুন, অন্যথায় খালি ক্রিয়া ফেরত দিন যেখানে Optional.or() পদ্ধতি পরীক্ষা করে যে মান উপস্থিত আছে কিনা, রিটার্ন বিকল্পে মান রয়েছে, অন্যথায় ফেরত দেওয়া ঐচ্ছিক সরবরাহকারী ফানসিটনে প্রযোজ্য। Optional.ifPresentOrElse() পদ্ধতিতে দুটি পরামিতি রয়েছে, ভোক্তা এবং চালানো যোগ্য যেখানে Optional.or() পদ্ধতিতে শুধুমাত্র একটি প্যারামিটার রয়েছে, সরবরাহকারী .

Optional.ifPresentOrElse():

public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)

উদাহরণ

import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;

public class IfPresentOrElseMethodTest {
   public static void main(String args[]) {
      optionalIsPresent();
      optionalIsEmpty();
   }
   private static void optionalIsPresent() {
      Optional<String> optional = Optional.of("Test");
      AtomicInteger successCounter = new AtomicInteger();
      AtomicInteger emptyOptionalsCounter = new AtomicInteger();

      optional.ifPresentOrElse(x -> successCounter.incrementAndGet(), () ->       emptyOptionalsCounter.incrementAndGet());

      System.out.println(successCounter.get());
      System.out.println(emptyOptionalsCounter.get());
   }
   private static void optionalIsEmpty() {
      Optional optional = Optional.empty();
      AtomicInteger successCounter = new AtomicInteger();
      AtomicInteger emptyOptionalsCounter = new AtomicInteger();

      optional.ifPresentOrElse(x -> successCounter.incrementAndGet(), () -> emptyOptionalsCounter.incrementAndGet());

      System.out.println(successCounter.get());
      System.out.println(emptyOptionalsCounter.get())
   }
}

আউটপুট

1
0
0
1


Optional.or():

এর সিনট্যাক্স
public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)

উদাহরণ

import java.util.Optional;

public class OptionalOrMethodTest {
   public static void main(String args[]) {
      optionalIsPresent();
      optionalIsEmpty();
   }
   private static void optionalIsPresent() {
      Optional<String> optional1 = Optional.of("Test1");
      Optional<String> optional2 = Optional.of("Test2");

      Optional<String> optional3 = optional1.or(() -> optional2);
      System.out.println(optional3.get());
   }
   private static void optionalIsEmpty() {
      Optional<String> optional1 = Optional.empty();
      Optional<String> optional2 = Optional.of("Test2");

      Optional<String> optional3 = optional1.or(() -> optional2);
      System.out.println(optional3.get());
   }
}

আউটপুট

Test1
Test2

  1. জাভাতে Gson এর থেকে Json() এবং toJson() পদ্ধতির মধ্যে পার্থক্য?

  2. জাভাতে সংগ্রহ এবং সংগ্রহের মধ্যে পার্থক্য?

  3. জাভাতে অপেক্ষা () এবং ঘুম () পদ্ধতির মধ্যে পার্থক্য?

  4. জাভাতে compareTo() এবং compare() পদ্ধতির মধ্যে পার্থক্য কি?