Optional使用 - yiyanglij/yiyanglij.github.io GitHub Wiki
三种构造方式
Optional.of(obj):要求传入对象不能为空
Optional.ofNullable(obj):传入对象可以为空
Optional.empty():空
Optional.ofNullable(orderInfo.getNotifyOrder()).ifPresent( val->{
AssertExt.isTrue(!(orderInfo.getNotifyOrder()>=2), "已达最大发货提醒次数");
orderInfo.setNotifyOrder(orderInfo.getNotifyOrder()+1).setNotifyOrderTime(LocalDateTime.now());
}
);
ifPresent,orElse,orElseGet使用
ifPresent:存在则做事
Optional.ofNullable(obj).ifPresent(Class a::Method b);
Optional.ofNullable(obj).ifPresent(a->{..});
orElse:存在则返回list,否则返回list1
Optional.ofNullable(list).orElse(list1);
orElseGet
Optional.ofNullable(list).orElseGet(A::method);
Optional.ofNullable(list).orElseGet(()->method());
- 当else的值是现有变量时直接使用orElse直接返回该对象;
- 而当else的值需要进一步计算才能获取到时使用orElseGet