Java的Optional实现优雅判空新体验【最佳实践】
背景
在Java的开发中条件判断很常见,若全部使用if-else判断,维护起来似乎有点麻烦,本期记录使用Optional实现,方便备查。
一、创建对象
创建Optional对象,推荐使用【ofNullable】属性,支持泛型
若传递的值为 null,仍然会创建空的Optional对象
Order order = new Order();
Optional<Order> optional = Optional.ofNullable(order);
二、对象判空
对象判空可使用【isPresent】,判断对象是否包含非空值
if(optional.isPresent()){System.out.println("optional存在空值");
};
三、设置默认值
若某个属性为空,则可设置默认值,
方式一、直接赋值
可使用【orElse】
当姓名name属性为空时,可指定返回【匿名用户】
String name = Optional.of(order).map(Order :: getName).orElse("匿名用户");
方式二、懒加载方式
可使用【orElseGet】
String newName = Optional.of(order).map(Order :: getName).orElseGet(() -> {return "新用户";});