内部类中的嵌套类

时间:2018-08-09 02:47:42

标签: kotlin inner-classes

是否可以在内部类中定义嵌套类?我以为嵌套类只是一个没有时间限制的命名空间,所以我不明白为什么下面的内容不应该进行类型检查:

class Outer {
    inner class Inner {
        class Nested {
    }
}

这在class Nested行上给我一个“此处不允许上课”错误。

当然,我可以将Nested的定义移到Inner旁边,一切正常。但在我的实际用例中,Nested仅与Inner的实现有关,因此我想将其保留在内部。

1 个答案:

答案 0 :(得分:3)

那么这行得通吗?现在,嵌套可以访问内部和外部。不允许将嵌套的内部内容留给各种与“封闭性”相关的问题。

class Outer {
    inner class Inner {
        inner class Nested {
    }
}

数据类

data class Outer2(var foo: Int) {
    data class Inner(var foo: Int) {
        data class Nested(var foo: Int) {

        }
    }
}