Android kotiln 无法在抽象类中导入内部类



将旧的 Java 代码转换为 kotlin 时出错。

为了帮助解决这个问题,我用示例代码编写了当前的问题。

abstract class AbClass {
open inner class Test {
}
}

继承 AbClass 的 ExClass

class ExClass : AbClass() {

private class T : AbClass.Test() {
//Error AbClass.Test() UnResolved reference: Test
}
}

為什麼我無法獲得 AbClass.Test ((?

当将 Java 代码转换为 Kotlin 时,情况变得如此。

AbClass 在 Java 中就是这样。当您使用关键字inner时,这意味着inner类可以引用outer类。

public abstract class AbClass {
public class Test {
}
}

当扩展 AbClass 时,你声明类T而不inner关键字,这意味着 kotlin 会生成它以static class。基本上,static class不是指outer class这可能是类T和类Test之间的冲突。所以最后,如果你使用关键字inner它也应该在第T类中声明。确保它声明相同

class ExClass : AbClass() {
private inner class T : AbClass.Test() {
}
}

最新更新