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方法圖示
鏈式訪問: