Kotlin:如何处理'protected'属性公开其内部返回类型



有一个基类,我希望它及其后代类仅在内部可见:

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受到保护,则必须使Userinternal。通过这样做,它将保证User将被同一模块中的类继承。以下应该没问题:

internal open class User {
protected var class_A_list: List<Class_A>? = null
}

相关内容

  • 没有找到相关文章

最新更新