繁体   English   中英

Android studio - 继承链中的模糊方法调用(Kotlin Java 互操作性)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM