【发布时间】:2018-08-30 22:24:33
【问题描述】:
我有一个带有返回 Option[Boolean] 的方法的 Scala Trait。我想编写一个实现此特征的 Java 类。不幸的是,编译器抱怨以下代码:
trait WithBoolean {
def doSth(): Option[Boolean]
}
public class MyClass implements WithBoolean {
@Override
public Option<Boolean> doSth() {
return null;
}
}
编译错误是:
doSth() in MyClass cannot implement doSth() in WithBoolean
public Option<Boolean> doSth() {
^
return type Option<Boolean> is not compatible with Option<Object>
如果我稍微更改代码,它确实可以编译:
public class MyClass implements WithBoolean {
@Override
public Option<Object> doSth() { //return type has been changed to Object
return null;
}
}
但这显然不是一个好的解决方案。为了能够使用正确的返回类型,我需要进行哪些更改?
【问题讨论】: