def close(): Future[Unit]
但我需要在java中这样做。
感谢,
答案 0 :(得分:5)
简短回答:从Java开始,您需要对scala.runtime.BoxedUnit
的Scala类使用Unit
。
给出像
这样的Scala类abstract class ScalaFoo {
def close(): Future[Unit]
}
你的Java类必须像这样扩展它:
class JavaFoo extends ScalaFoo {
@Override
public Future<BoxedUnit> close() {
return null;
}
}
这种间接的原因是Scala's Type Hierarchy的怪癖:Unit
是scala.AnyVal
(而不是scala.AnyRef
/ java.lang.Object
)因此具有没有方便的Java等价物。