用处:避免大量的if判空
创建Optional:Optional.ofNullable(insurance)
案例
//判空的常规做法
private static String getInsuranceName(Insurance insurance) {
if (insurance != null) {
return insurance.getName();
}
return "unknow";
}
//不再需要判空了
//如果insurance为null时,Optional.ofNullable(insurance)返回Optional类型的EMPTY对象,并且该对象的value是null
//Optional.EMPTY执行map方法,里面的isPresent()返回false(value是null),然后map返回Empty对象
//orElseGet()方法中如果value==null就返回默认对象unknow
private static String getInsuranceNameByOptional(Insurance insurance) {
return Optional.ofNullable(insurance)
.map(Insurance::getName)
.orElseGet(() -> {
return "unknow";
});
}