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

javaobject oriented programmingprogramming更新于 2025/10/21 21:00:17

在 Java 9 中,一些静态方法:stream()、or() 和 ifPresentOrElse() 已添加到 Optional<T>  类中。引入 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

相关文章


有用资源