编辑
2024-11-14
学习记录
00
请注意,本文编写于 140 天前,最后修改于 140 天前,其中某些信息可能已经过时。

目录

介绍
主要用途
常用方法

介绍

Optional 是 Java 8 引入的一个容器类,代表一个值存在或不存在。原来用 null 表示一个值不存在,现在 Optional 可以更好地表达这个概念。并且可以避免空指针异常(NullPointerException)。

主要用途

作为方法的返回类型:当你想要明确表示一个方法可能会返回值也可能不返回值时,可以使用 Optional 作为返回类型。

避免空指针异常:通过使用 Optional,你可以显式地检查值是否存在,从而避免直接访问可能导致的 NullPointerException。

提供默认操作:如果值不存在,可以通过 Optional 提供的方法来指定默认行为。

常用方法

  • of(T value):创建一个 Optional 实例,如果传递的参数是 null,则抛出 NullPointerException。
  • ofNullable(T value):创建一个 Optional 实例,如果传递的参数是 null,则返回一个空的 Optional。
  • isPresent():判断 Optional 是否包含非 null 值。
  • get():如果 Optional 包含值,则返回该值,否则抛出 NoSuchElementException。
  • orElse(T other):如果 Optional 包含值,则返回该值,否则返回 other。
  • orElseGet(Supplier<? extends T> supplier):如果 Optional 包含值,则返回该值,否则返回由 Supplier 生成的值。
  • orElseThrow(Supplier<? extends X> exceptionSupplier):如果 Optional 包含值,则返回该值,否则抛出由 exceptionSupplier 生成的异常。
  • ifPresent(Consumer<? super T> consumer):如果 Optional 包含值,则执行 consumer 指定的操作。
  • filter(Predicate<? super T> predicate):如果 Optional 包含值并且该值满足给定的谓词,则返回包含该值的 Optional,否则返回空的 Optional。
  • map(Function<? super T, ? extends U> mapper):如果 Optional 包含值,则对值应用 mapper 函数,并返回包含结果的 Optional;如果 Optional 不包含值,则返回空的 Optional。

本文作者:Weee

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!