java8 Optional 使用方法详解

  本文总结一下java8 Optional 使用方法详解。

一、Optional介绍

  Optional类是 Java 8 中引入的一个用于解决空指针异常的类,它可以表示一个值存在或不存在。

二、Optional类的使用

1. 创建Optional类

创建Optional类有两种方式:

  • 使用 Optional.of() 方法创建一个包含非空值的 Optional 对象。
  • 使用 Optional.empty() 方法创建一个的 Optional 对象。
Optional<String> optionalWithValue = Optional.of("Hello");
Optional<String> optionalEmpty = Optional.empty();

2. Optional类的常用方法

  • isPresent() :判断 Optional 对象中是否包含值。
  • ifPresent(Consumer<? super T> consumer) :如果 Optional 对象中存在值,则执行指定的操作
  • orElse(T other) :如果 Optional 对象中存在值,则返回该值;否则返回指定的默认值
  • orElseGet(Supplier<? extends T> supplier) :如果 Optional 对象中存在值,则返回该值;否则根据提供的 Supplier 函数生成一个值
  • orElseThrow(Supplier<? extends X> exceptionSupplier) :如果 Optional 对象中存在值,则返回该值;否则抛出指定的异常
Optional<String> optional = Optional.of("Hello");
if (optional.isPresent()) {
    System.out.println("Value: " + optional.get());
}

optional.ifPresent(value -> System.out.println("Value: " + value));

String valueOrDefault = optional.orElse("Hello1");

String valueOrGenerated = optional.orElseGet(() -> "Hello1");

String valueOrThrow = optional.orElseThrow(() -> new RuntimeException("not present"));

3. Optional类的链式调用

map() 、 flatMap() 等方法返回的Optional类的实例,所以可以进行链式调用,避免多层嵌套的判断。

Optional<String> optional = Optional.of("Hello");
Optional<String> upperCaseOptional = optional.map(String::toUpperCase);
  1. 不建议在集合中使用 Optional ,因为集合本身已经提供了空值的处理方法
  2. 避免过度使用 Optional ,只在需要明确表示值可能为空的情况下使用。


总结

   本文总结了java8 Optional 使用方法。
  希望对看到本文的你有帮助。



上一篇 java 方法引用
记得点赞收藏哦!!!
下一篇 java——Lambda表达式
  • 30
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值