首页 > 解决方案 > Kotlin:继承自嵌套的 Java 类

问题描述

我在.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 类继承,我不会出错)。

不知何故,我无法搜索相同的示例或问题。

标签: javainheritancekotlinnested

解决方案


在 Kotlin 中相当于 Java 的非静态嵌套类是内部类。

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

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

推荐阅读