拥有一个基类,我希望它及其后代类仅在内部可见:
internal abstract class BaseClass
internal open class Class_A: BaseClass()
internal open class Class_B: Class_A()
在Class_A
列表的地方(其中可能还包含 Class_B
),希望对其进行保护以使其自己的后代类访问此列表open class User {
// got error: 'protected' property exposes its internal return type"
protected var class_A_list: List<Class_A>? = null
}
class User_descendent: User() {
// can access the class_A_list
}
如何让后代类访问某个“内部”类的实例?
最佳答案
上述错误正在保护 internal
由不在内部类的同一模块中的其他类访问的类。如果允许,则不能保证类 User
只会被同一模块中的类继承。
所以如果你想制作 class_A_list
protected ,您必须制作 User
类(class) internal
.通过这样做,它将保证,User
将由同一模块中的类继承。以下应该没问题:
internal open class User {
protected var class_A_list: List<Class_A>? = null
}
关于Kotlin:如何处理 'protected' 属性暴露其内部返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62503790/