我有一个带有返回值为Option[Boolean]的Scala Trait。我想编写一个实现该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;
}
}
但这显然不是一个好的解决方案。我需要改变什么才能使用正确的返回类型?
import scala.Option;
之外,没有其他的导入。 - user3346601scala.Boolean
实际上并不存在,因为它是编译器发明的虚构类,旨在营造原始类型bool
是对象的假象。 - Jörg W Mittag