Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android kotiln无法在抽象类中导入内部类_Android_Kotlin_Abstract Class_Inner Classes_Extends - Fatal编程技术网

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

Android kotiln无法在抽象类中导入内部类,android,kotlin,abstract-class,inner-classes,extends,Android,Kotlin,Abstract Class,Inner Classes,Extends,将旧Java代码转换为kotlin时出错 为了解决这个问题,我用示例代码编写了当前的问题 abstract class AbClass { open inner class Test { } } 继承AbClass的属性 class ExClass : AbClass() { private class T : AbClass.Test() { //Error AbClass.Test() UnResolved reference: Te

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

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

abstract class AbClass {

      open inner class Test {

      }
}
继承AbClass的属性

class ExClass : AbClass() {


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

}
为什么我不能参加考试


将Java代码转换为Kotlin时就变成了这样。

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

当扩展AbClass时,您声明类T而不使用内部关键字,这意味着kotlin将其生成为静态类。基本上,静态类不引用外部类,这可能是类T和类测试之间的冲突。因此,如果使用关键字internal,它也应该在类T中声明。确保它是那样声明的

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

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

    }
}