Optional一致性

举报
xcc-2022 发表于 2022/07/22 18:03:11 2022/07/22
【摘要】 目录1. java.util.Optional1.1 public static Optional empty()1.2 public static Optional of(T value)1.3 public static Optional ofNullable(T value)1.4 public T get()1.5 public boolean isPresent()1.6 publ...


1. java.util.Optional

Optional对象是一种包装器对象,被当作一种更安全的方式,用来替代类型T的引用,用以解决空指值异常所带来的问题。

1.1 public static Optional empty()

产生一个空Optional。

1.2 public static Optional of(T value)

产生一个具有给定值的Optional,如果value为null,将会抛出NullPointerException。

1.3 public static Optional ofNullable(T value)

产生一个具有给定值的Optional,如果value为null,将会产生一个空Optional。

1.4 public T get()

获取当前Optional的值,如果当前Optional为空,则抛出NoSuchElementException。

1.5 public boolean isPresent()

如果当前Optional不为空,则返回false。

1.6 public boolean isEmpty()

如果当前Optional为空,则返回true。

1.7 public void ifPresent(Consumer<? super T> action)

如果当前Optional不为空,则执行指定Consumer。

1.8 public void ifPresentOrElse(Consumer<? super T> action, Runnable emptyAction)

如果当前Optional不为空,则执行指定Consumer,否则执行指定Runable。

1.9 public Optional filter(Predicate<? super T> predicate)

如果当前Optional为空,返回空Optional,否则执行指定Predicate,若执行结果为true,则返回当前Optional,否则返回空Optional。

1.10 public Optional map(Function<? super T, ? extends U> mapper)

返回将当前Optional的值传递给指定Function后的结果并将结果包装成Optional,若当前Optional为空或Function执行结果为空,则返回空Optional。

1.11 public Optional flatMap(Function<? super T, ? extends Optional<? extends U>> mapper)

返回将当前Optional的值传递给指定Function后的结果,若当前Optional为空或Function执行结果为空,则返回空Optional,该方法与上述map方法的区别在与map方法会将Function返回的结果自动包装成Optional类型,而flatMap方法的Function返回的结果必须是Optional类型,flatMap的返回结果与Function的结果一样保持不变。

1.12 public Optional or(Supplier<? extends Optional<? extends T>> supplier)

若当前Optional不为空,则返回当前Optional,否则返回Supplier执行后的结果,该结果必须为Optional类型,若Supplier执行后的结果为空,则抛出NullPointerException。

1.13 public Stream stream()

若当前Optional为空,则返回空Stream,否则返回包含当前Optional的值的Stream。

1.14 public T orElse(T other)

若当前Optional不为空,返回当前Optional的值,否则返回指定对象other。

1.15 public T orElseGet(Supplier<? extends T> supplier)

若当前Optional不为空,返回当前Optional的值,否则返回指定Supplier生成的对象。

1.16 public T orElseThrow()

若当前Optional不为空,返回当前Optional的值,否则抛出NoSuchElementException。

1.17 public T orElseThrow(Supplier<? extends X> exceptionSupplier) throws

若当前Optional不为空,返回当前Optional的值,否则抛出指定Supplier生成的异常。

1.18 public boolean equals(Object obj)

略。

1.19 public int hashCode()

略。

1.20 public String toString()

略。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。