Optional的使用

例子:Integer status = Optional.ofNullable(paymentMsg).map(u -> u.getStatus()).orElse(-1);
1、optional.ofNullable(T t):创建一个包含t的optional对象,以后想操作t的话,可以直接操作optional。如果t为空,optional也为空对象,不抛异常。
结合 isPresent()方法:判断optional是否为空,如果空则返回false,否则返回true
例如:

if (Optional.ofNullable(paymentMsg).isPresent()) {
            if (paymentMsg.getStatus()==0) {
                orderService.updateById(msg);
            }
        }
        else {
            log.info("paymentMsg不能为空");
        }

2、map:如果t不为空,并把t映射给u,把u放到一个新的optional对象,使用u操作。

 Optional<Integer> opt= Optional.ofNullable(paymentMsg).map(u -> u.getStatus());

然后使用get()方法获取status

Integer status = opt.get();

以上两步可以合为一步:

Integer status = Optional.ofNullable(paymentMsg).map(u -> u.getStatus()).orElse(-1);`

3、orElse()返回opt中的t。
如果你想在抛异常的话可以使用orElseThrow()

Optional.ofNullable(paymentMsg).map(u -> u.getStatus()).orElseThrow(() -> new RuntimeException("Unkown"));

paymentMsg不为空,但是status为空,这是抛一个异常。
结束:
以后就不用写

if(paymentMsg!=null&&paymentMsg.getStatus==1){
	代码。。。
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值