1. null 有什么问题?
容易报错增加代码量无意义埋的一个坑
2. 从null到Optional
Optional<House> optHouse = Optional.empty();
Optional<House> optHouse = Optional.of(house);//house为null时,会抛出异常
Optional<House> optHouse = Optional.ofNullable(house);//house可以为空
3. 去除null check
//有if的check
String name = null;
if(insurance != null){
name = insurance.getName();
}
//没有if的check
Optional<Insurance> optInsurance = Optional.ofNullable(insurance);
Optional<String> name = optInsurance.map(Insurance::getName);
map方法的图示:
4. 各种从Optional读取方式
flatMap方法图示
链式访问: