是否可以在内部类中定义嵌套类?我以为嵌套类只是一个没有时间限制的命名空间,所以我不明白为什么下面的内容不应该进行类型检查:
class Outer {
inner class Inner {
class Nested {
}
}
这在class Nested
行上给我一个“此处不允许上课”错误。
当然,我可以将Nested
的定义移到Inner
旁边,一切正常。但在我的实际用例中,Nested
仅与Inner
的实现有关,因此我想将其保留在内部。
答案 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) {
}
}
}