Optional类

2018-09-03  本文已影响0人  huxiaofeng
public class Person { 
 private Optional<Car> car; 
 public Optional<Car> getCar() { return car; } 
}
public class Car { 
 private Optional<Insurance> insurance; 
 public Optional<Insurance> getInsurance() {  return insurance; } 
} 
public class Insurance { 
 private String name; 
 public String getName() { return name; }
} 

人可能有车,也可能没有车,因此将这个字段声明为Optional。车可能进行了保险,也可能没有保险,所以将这个字段声明为Optional。保险公司必须有名字,如果你遇到一个公司没有名称,你需要调查你的数据出了什么问题,而不应该再添加一段代码,将这个问题隐藏。

应用 Optional 的几种模式

  1. 声明一个空的Optional。你可以通过静态工厂方法Optional.empty,创建一个空的Optional对象

Optional<Car> optCar = Optional.empty();

  1. 依据一个非空值创建Optional。你还可以使用静态工厂方法Optional.of,依据一个非空值创建一个Optional对象

Optional<Car> optCar = Optional.of(car);

  1. 可接受null的Optional。使用静态工厂方法Optional.ofNullable,你可以创建一个允许null值的Optional
    对象

Optional<Car> optCar = Optional.ofNullable(car);

上一篇下一篇

猜你喜欢

热点阅读