Android studio-继承链中不明确的方法调用(Kotlin Java互操作性)
所以我有3个类-基本Java->Kotlin后代->Java后代Android studio-继承链中不明确的方法调用(Kotlin Java互操作性),java,android,android-studio,kotlin,Java,Android,Android Studio,Kotlin,所以我有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>?) {
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>());
}
}
公共类JavaParentClass{
公共无效doSmth(列表项){}
}
开放类KotlinDescendant:JavaParentClass(){
覆盖fun doSmth(项目:可变列表?){
super.doSmth(项目)
}
}
公共类JavaDegenant扩展了KotlinDescendant{
void方法(){
doSmth(新ArrayList());
}
}
对于Android Studio中的JavaDegenant
类编译器,显示错误“方法调用不明确。KotlinDescendant和JavaParentClass中都匹配”
因此,据我所知,lint只是不理解doSmth
实际上在KotlinDescendant
类中被重写
尽管它在运行时运行良好,但如何避免此错误?当您在Kotlin文件中编写java代码时,android studio会抱怨,反之亦然,如果您将3个类分别放在自己的文件中,无论是从java代码还是Kotlin代码调用它们都不会产生任何错误。错误出现在哪一行?那么,我在Java项目的IDEA 2019.2中尝试了您的代码,在这个ide中没有错误。你在Android Studio上使用什么版本?最新版本,3.5.2。感谢您提供的信息,希望它能很快出现在Android Studio中!