Kotlin嵌套类成员可见性

Kotlin嵌套类成员可见性,kotlin,Kotlin,在Kotlin中,我尝试在SomeClass类中有一个嵌套的NestedClass,有一个NestedClass实例,在NestedClass中有一个成员,这样只有SomeClass可以访问该成员。我试过以下方法 class SomeCLass { class NestedClass(private var member: Int) val nInstance = NestedClass(4) fun doSomething() { nInstance.

在Kotlin中,我尝试在SomeClass类中有一个嵌套的NestedClass,有一个NestedClass实例,在NestedClass中有一个成员,这样只有SomeClass可以访问该成员。我试过以下方法

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中默认是静态的,因此您必须相应地使用它们。作为旁注,如果您希望它在模块之外是私有的,您可以使用
内部
修饰符。