学习笔记-Java8新特性-第五节-Optional类

发布时间 2023-05-21 23:16:03作者: 0Andl0

Optional类

  • Optional<T>是一个容器类

  • 代表一个值存在或不存在

  • 致力于解决空指针异常问题(NPE)

  • 可以快速锁定发生NPE的位置

  • (这东西真的好用吗?)

常用方法

  • Optional.of(T t)

    • 创建一个Optional实例

    • 不能传入空指针,会报NPE

    • 使用Optional,报空指针了,说明就是这里的问题?

  • get()

    • 获取容器中的值

    • 容器为空会报NPE

  • Optional.empty()

    • 创建了一个空的Optional实例
  • Optional.ofNullable(T t)

    • 创建一个Optional实例

    • 如果传入null

    • 创建一个空的实例

  • isPresent()

    • 判断是否包含值
  • orElse(T t)

    • 不为空,则返回值

    • 为空,则返回指定的值

  • orElseGet(Supplier s)

    • 不为空,则返回值

    • 为空,则返回s获取的值

  • map(Function f)

    • 不为空,对其处理,返回处理后的Optional

    • 为空,返回空Optional

  • flatMap(Function f)

    • 同上

    • 但是要求f的返回值是Optional