[英]Android studio - ambiguous method call in inheritance chain (Kotlin Java interoperability)
所以我有 3 个类 - 基础 Java -> Kotlin 后代 -> Java 后代。
public class JavaParentClass {
public <T> void doSmth(List<T> item) {}
}
open class KotlinDescendant : JavaParentClass() {
override fun <T : Any?> doSmth(item: MutableList<T>?) {
super.doSmth(item)
}
}
public class JavaDescendant extends KotlinDescendant {
void someMethod() {
doSmth(new ArrayList<String>());
}
}
对于 Android Studio 中的JavaDescendant
类编译器显示错误“Ambiguous method call. Both in KotlinDescendant and JavaParentClass match”。
因此,据我所知,lint 只是不明白doSmth
实际上在KotlinDescendant
类中被覆盖了。
尽管它在运行时运行良好,但可以做些什么来避免此错误?
当您在 Kotlin 文件中编写 java 代码时,android studio 会抱怨,反之亦然,如果您将 3 个类分别放在一个自己的文件中,则无论是从 java 代码还是从 Kotlin 代码调用它们都不会产生任何错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.