Kotlin嵌套类成员可见性
在Kotlin中,我尝试在SomeClass类中有一个嵌套的NestedClass,有一个NestedClass实例,在NestedClass中有一个成员,这样只有SomeClass可以访问该成员。我试过以下方法Kotlin嵌套类成员可见性,kotlin,Kotlin,在Kotlin中,我尝试在SomeClass类中有一个嵌套的NestedClass,有一个NestedClass实例,在NestedClass中有一个成员,这样只有SomeClass可以访问该成员。我试过以下方法 class SomeCLass { class NestedClass(private var member: Int) val nInstance = NestedClass(4) fun doSomething() { nInstance.
class SomeCLass {
class NestedClass(private var member: Int)
val nInstance = NestedClass(4)
fun doSomething() {
nInstance.member = 10
}
}
但该成员无法从某个类访问。一般来说,我希望有两个类,并且只有第一个类能够访问第二个类的成员。如何操作?因为kotlin中的外部类无法访问内部/嵌套类的私有成员。看见您可以从
成员
中删除私有可见性修饰符,使外部类可以访问它。您可以将内部类设置为私有,而不是设置私有属性:
class SomeCLass {
private class NestedClass(var member: Int)
private val nInstance = NestedClass(4)
fun doSomething() {
nInstance.member = 10
}
}
如果我删除私有可见性
成员
将可以从任何地方访问。是的,删除私有可见性修改器后,您可以从任何地方访问成员
。但是请注意,嵌套类在Kotlin中默认是静态的,因此您必须相应地使用它们。作为旁注,如果您希望它在模块之外是私有的,您可以使用内部
修饰符。