27 Nisan 2021 Salı

Optional.or metodu

Giriş
Java 9 ile geliyor. Optional empty olmadığı müddetçe or() ile bağlanan metodları çağırır. Açıklaması şöyle
The usage of or() method is similar to what orElse() and orElseGet() method does. However, or() method let us return an Optional instance that is produced by a Supplier.
Örnek
Şöyle yaparız.
Optional<Integer> a, b, c, d; // initialized
Optional<Integer> opOr = a.or(() -> b).or(() -> c).or(() -> d);
Örnek
Şöyle yaparız
@Test
public void whenUseOrThenOk(){
  Person person = null;
  Person optionalPerson = Optional.ofNullable(person)
    .or(() -> Optional.of(new Person("default", "9898")))
.get();
  assertThat(optionalPerson.getContactNo(), is("9898"));
}
Örnek
Şöyle yaparız.
String getFooFromService() {
    return this.function_1()
      .or(this::function_2) // Requires Java 9
      .or(this::function_3) // Requires Java 9
      .orElse("DEFAULT_VALUE");
  }

  Optional<String> function_1() {
    System.out.println("function_1 called");
    return Optional.empty();
  }

  Optional<String> function_2() {
    System.out.println("function_2 called");
    return Optional.of("b");
  }

  Optional<String> function_3() {
    System.out.println("function_3 called");
    return Optional.of("c");
  }

Hiç yorum yok:

Yorum Gönder