Optional类的主要方法有哪些

发布时间:2025-05-05 07:32:58 作者:小樊
来源:亿速云 阅读:91

Optional 类是 Java 8 引入的一个容器对象,用于表示一个值存在或不存在。它的主要方法包括:

创建 Optional 对象

  1. Optional.empty()

    • 返回一个空的 Optional 实例。
  2. Optional.of(T value)

    • 创建一个包含非空值的 Optional 实例。
    • 如果传入的值为 null,会抛出 NullPointerException
  3. Optional.ofNullable(T value)

    • 创建一个 Optional 实例,如果传入的值为 null,则返回一个空的 Optional

检查值是否存在

  1. boolean isPresent()

    • 如果值存在则返回 true,否则返回 false
  2. T orElse(T other)

    • 如果值存在,则返回该值;否则返回指定的默认值。
  3. T orElseGet(Supplier<? extends T> other)

    • 类似于 orElse,但是默认值的计算是惰性的,只有在需要时才会调用 Supplier
  4. T orElseThrow(Supplier<? extends X> exceptionSupplier)

    • 如果值存在,则返回该值;否则抛出由 Supplier 提供的异常。

获取值

  1. T get()

    • 返回 Optional 中的值。
    • 如果值不存在(即 isPresent() 返回 false),会抛出 NoSuchElementException
  2. Optional<T> filter(Predicate<? super T> predicate)

    • 如果值存在并且满足给定的谓词,则返回包含该值的 Optional;否则返回一个空的 Optional

转换值

  1. Optional<U> map(Function<? super T, ? extends U> mapper)

    • 如果值存在,则应用给定的函数并返回包含结果的 Optional;否则返回一个空的 Optional
  2. Optional<U> flatMap(Function<? super T, Optional<U>> mapper)

    • 类似于 map,但是 mapper 返回的是一个 Optional 对象。如果原始 Optional 包含值,则会扁平化嵌套的 Optional

其他方法

  1. void ifPresent(Consumer<? super T> consumer)

    • 如果值存在,则执行给定的操作。
  2. void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)

    • 如果值存在,则执行 action;如果值不存在,则执行 emptyAction
  3. Stream<T> stream()

    • 返回一个顺序流,其中包含 Optional 中的值(如果存在)。
  4. Spliterator<T> spliterator()

    • 返回一个 Spliterator,用于并行处理 Optional 中的值。
  5. boolean equals(Object obj)

    • 比较两个 Optional 对象是否相等。
  6. int hashCode()

    • 返回 Optional 对象的哈希码。

这些方法使得 Optional 类在处理可能为空的值时更加安全和方便,避免了空指针异常,并提供了丰富的操作接口。

推荐阅读:
  1. python创建类的方法有哪些
  2. python的类有哪些方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:哪些因素导致死锁

下一篇:Optional与ifPresent的区别

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》