在Java中检查不为空

前端之家收集整理的这篇文章主要介绍了在Java中检查不为空前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
想象一下,我在 Java生成了XML生成的实体,它包含了我需要的一些数据.
例如:
<Car>
   <Engine>
      <Power>
         175
      </Power>
   </Engine>
</Car>

因此,如果我需要一个引擎电源,那么接下来是商业软件开发的最佳实践,我将做下一件事:

Car car = dao.getCar()
Power power = car != null && car.engine != null ? power : null
return power

我讨厌这个.有时似乎有一半的代码只是空检查.

有任何想法吗?

解决方法

看看 Java 8 Optional class.
它确实如此:它避免了对null的丑陋检查.

在您的情况下,您可以使用此代码段来避免它们:

Car car = dao.getCar();
Optional<Car> optionalCar = Optional.ofNullable(car); 
Optional<Power> optionalPower = getPowerIfPresent(optionalCar);

Power power = Optional.empty();
if(optionalPower.isPresent()) {
    power = optionalPower.get();
}

在写完一个能够返回给定汽车动力的功能之后:

public static Optional<Power> getPowerIfPresent(Optional<Car> car) {
    return car
        .flatMap(c -> c.getEngine())
        .map(e -> e.getPower());
}

猜你在找的Java相关文章