/** * Common instance for {@code empty()}. */ private static final Optional<?> EMPTY = new Optional<>(); /** * If non-null, the value; if null, indicates no value is present */ private final T value;
构造方法
两个构造方法,注意都是私有的
1、创建一个包含空值的Optional对象;
2、创建一个非空值的Optional对象;
private Optional() { this.value = null; }
private Optional(T value) { this.value = Objects.requireNonNull(value); }
empty()方法这个方法很简单,作用是返回一个Optional实例,里面存放的value是null,源码如下: