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