首页 > 文章列表 > Java 9中Optional.or()方法的重要性是什么?

Java 9中Optional.or()方法的重要性是什么?

340 2023-08-29

在Java 9中,Optional<T>类中添加了一些静态方法:stream()、or()ifPresentOrElse()。引入Optional类解决了空指针异常的问题。

Optional.or()方法返回一个Optional,描述如果存在值则返回该值,否则返回由提供函数生成的Optional。

语法

public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)

示例

import java.util.Optional;
import java.util.function.Supplier;

public class OptionalOrTest {
   public static void main(String args[]) {
      Optional<String> optional = Optional.of("TutorialsPoint");
      Supplier<Optional<String>> supplierString = () -> Optional.of("Not Present");
      optional = optional.or(supplierString);
      optional.ifPresent(x -> System.out.println("Value: " + x));
      optional = Optional.empty();
      optional = optional.or(supplierString);
      optional.ifPresent(x -> System.out.println("Value: " + x));
   }
}

输出

Value: TutorialsPoint
Value: Not Present