例子: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){
代码。。。
}