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

问题描述 投票:0回答:1

将旧的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时就这样。

android kotlin abstract-class inner-classes extends
1个回答
1
投票

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() {

    }
}
© www.soinside.com 2019 - 2024. All rights reserved.