演示该问题的最简单代码是这样的:
Kotlin 中的主界面:
interface Base <T : Any> {
fun go(field: T)
}
实现它的抽象类和方法:
abstract class Impl : Base<Int> {
override fun go(field: Int) {}
}
Java类:
public class JavaImpl extends Impl {
}
它应该有效,但事实并非如此。错误是
类“JavaImpl”必须声明为抽象或在“Base”中实现抽象方法“go(T)”
如果 JavaImpl 类在 Kotlin 中,那么它就可以工作。另外,如果T将 投射到String或Integer或任何物体,它也会起作用。但 Int 则不然。
除了使用 Integer 并抑制 Kotlin 子类中的数百个警告之外,还有什么聪明的解决方案吗?
三国纷争
慕容3067478
相关分类