该Optional.or方法是在 Java 9 中添加的。这是方法签名
public Optional<T> or(Supplier<? extends Optional<? extends T>> supplier)
既然是final类,为什么是Suppliertake的类型参数? extends Optional而不是just ?OptionalOptional
该Optional.flatMap方法也是如此。这是对 Java 8 的更改。
在 Java 8 中,它在 Java 9 中Function<? super T, Optional<U>> mapper被更改为Function<? super T,? extends Optional<? extends U>>。