请注意,本文编写于 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
许可协议。转载请注明出处!