orElse,orElseGet,orElseThrow的使用

本文介绍了Java中的Optional类如何使用orElse、orElseGet和orElseThrow来处理null值,展示了在不同场景下如何选择合适的策略。orElse用于提供默认值,orElseGet允许通过Supplier动态计算值,orElseThrow则会抛出异常。
摘要由CSDN通过智能技术生成

这3个都是用来处理null的情况:
orElse 用的是括号内的对象
orElseGet 用的是Supplier接口返回的对象。 supplier接口就一个get方法。
无入参,出参要和Optional的对象同类型。
orElseThrow 用的是Supplier接口返回的对象,这个对象必须要实现Throwable。 supplier接口就一个get方法。 无入参,出参要实现Throwable.


orElse 代码

//orElse 有,就用自身值。  为null,就用orElse后面的值。
//有正品用正品,没正品用替代品
System.out.println(Optional.ofNullable("正品").orElse("替代品"));  // orElse
System.out.println(Optional.ofNullable(null).orElse("替代品"));

orElseGet代码

// orElseGet 它可以传入一个supplier接口,里面可以花样实现逻辑
System.out.println(Optional.ofNullable("宝马").orElseGet(()->"走路"));  // 有宝马就不用走路
System.out.println(Optional.ofNullable(null).orElseGet(()->"自行车"));  // 没宝马,可以骑自行车
System.out.println(Optional.ofNullable(null).orElseGet(()->"电动车"));  // 没宝马,也可以骑电动车

 orElseThrow代码

// 有钱就没异常
try {
    System.out.println(Optional.ofNullable("钱").orElseThrow(()->new Exception()));  // 有钱不会抛异常
} catch (Throwable throwable) {
    throwable.printStackTrace();
}

// 没钱就会抛异常
try {
    System.out.println(Optional.ofNullable(null).orElseThrow(()->new Exception()));  // 没钱抛异常
} catch (Throwable throwable) {
    throwable.printStackTrace();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洛杉矶暖男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值