Kotlin:从嵌套的Java类继承

时间:2018-11-14 23:23:26

标签: java inheritance kotlin nested

我在 .java 文件中有这些Java类:

public class BaseOuter
{
    public class BaseInner
    {
    }
}

我在 .kt 文件中有这些Kotlin类:

class DerivedOuter : BaseOuter()
{
    class DerivedInner : BaseOuter.BaseInner()
    {
    }
}

Android Studio中的此Kotlin代码给我一个“未解决的参考:BaseInner”错误。因此,我可以从BaseOuter类继承,但是从Java的BaseOuter.BaseInner派生则在语法上不正确(但是如果我尝试从Kotlin类继承相同,则不会出错)。

我无法以谷歌搜索相同的示例或问题。

1 个答案:

答案 0 :(得分:1)

Kotlin中Java的非静态嵌套类的等效项是内部类。

要使代码正常工作,您需要使用inner关键字:

class DerivedOuter() : BaseOuter() {
    inner class DerivedInner : BaseOuter.BaseInner() {
    }
}