Java 8 可选不能应用于接口
使用 Optional,我想根据映射结果返回某个实现 (或接口)。这是和实现的接口:FirstSecond)FirstSecond
public interface MyInterface {
Number number();
}
以下用法是错误的:Optional
final String string = ... // might be null
final Number number = Optional.ofNullable(string)
.map(string -> new First())
.orElse(new Second()) // erroneous line
.number();
或可选中的“可选”中的“可选”不能应用于
(com.mycompany.First)(com.mycompany.Second)
为什么行是错误的,因为两个类和实现接口和方法都返回?如何正确实现这一点?FirstSecondMyInterfaceMyInterface::numberNumber