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方法图示

链式访问:


本文探讨了null引用在编程中带来的问题,如代码冗余、错误隐患,并介绍了Optional模式作为解决方案。通过使用Optional,可以有效避免nullcheck,简化代码逻辑,提高代码质量和可读性。文章详细讲解了Optional的基本用法,包括创建Optional实例、使用map和flatMap方法进行值转换和链式调用。
5820

被折叠的 条评论
为什么被折叠?



