验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Optional类的主要方法有哪些

阅读:529 来源:乙速云 作者:代码code

Optional类的主要方法有哪些

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 other)

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

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

获取值

  1. T get()

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

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

转换值

  1. Optional map(Function mapper)

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

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

其他方法

  1. void ifPresent(Consumer consumer)

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

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

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

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

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

    • 返回 Optional 对象的哈希码。

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

分享到:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
相关文章
{{ v.title }}
{{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
你可能感兴趣
推荐阅读 更多>