gpt4 book ai didi

java - 如何覆盖 scala def close() : Future[Unit] in java

转载 作者:行者123 更新时间:2023-11-30 06:12:37 25 4
gpt4 key购买 nike

标题说明了一切。我似乎无法从 java 中编译它,我需​​要重写该函数

def close(): Future[Unit] 

但我需要在 java 中这样做。

谢谢,

最佳答案

简短回答:在 Java 中,您需要为具有 Unit 的 Scala 类使用 scala.runtime.BoxedUnit

给定一个 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 等价物。

关于java - 如何覆盖 scala def close() : Future[Unit] in java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32656403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com