使用 Optional
Optional是核心类库的新成员,用来替换null。相信大家对NPE已经司空见惯,在代码里也有不少 null check,null 这个东西也是颇有争议的, 而Optional可以消除我们这种厌恶感,鼓励我们适当时候去检查null值,防止程序崩溃。
示例 :
Shop.java
class Shop { |
不使用 Java8 的 Null Check:
if (shop.getProvinceId() != null) { |
使用 Java8 的 Null Check:
Optional.ofNullable(shop).map(Shop::getProvinceId) |
对比上面的代码,可以发现使用Java8的特性,可以大大减少代码量,Optional的API文档化提高了可读性。