Supplier 接口
- JDK8 新增函数是接口
- 提供一个get方法, 不接收参数, 返回一个参数
T get();
Optional
概述
- JDK8 新增, 主要用于解决 NullPointException异常
- 私有构造方法, 不允许通过new 获得一个Optional实例
- 提供一系列静态工厂方法获得Optional对象
- value为空的Optional可以认为是一个空的Optional
API 简介
empty 方法
private static final Optional<?> EMPTY = new Optional<>();
public static<T> Optional<T> empty() {
@SuppressWarnings("unchecked")
Optional<T> t = (Optional<T>) EMPTY;
return t;
}
of 方法
private Optional(T value) {
this.value = Objects.requireNonNull(value);
}
public static <T> Optional<T> of(T value) {
return new Optional<>(value);
}
ofNullable 方法
public static <T> Optional<T> ofNullable(T value) {
return value == null ? empty() : of(value);
}
get 方法
public T get() {
if (value == null) {
throw new NoSuchElementException("No value present");
}
return value;
}
isPresent 方法