Java 8 可选不能应用于接口
使用 Optional
,我想根据映射结果返回某个实现 (或接口)。这是和实现的接口:First
Second)
First
Second
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)
为什么行是错误的,因为两个类和实现接口和方法都返回?如何正确实现这一点?First
Second
MyInterface
MyInterface::number
Number