代码之家  ›  专栏  ›  技术社区  ›  Emil Kabirov

Kotlin:从嵌套Java类继承

  •  0
  • Emil Kabirov  · 技术社区  · 7 年前

    我在Java中拥有这些Java类 爪哇 文件:

    public class BaseOuter
    {
        public class BaseInner
        {
        }
    }
    

    我在一个 KT 文件:

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

    Android Studio中的这个Kotlin代码给了我一个“未解决的引用:baseinner”错误。因此,我可以从基类类继承,但是从Java的BaseOuter.BaseInner派生不是语法上正确的(但是如果我用Kotlin类继承来尝试同样的方法,那么我就不会出错)。

    不知何故,我不能用谷歌搜索出同样的例子或问题。

    1 回复  |  直到 7 年前
        1
  •  1
  •   syntagma    7 年前

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

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

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