如何从另一个对象实例访问私有字段?

Ala*_*ain 2 scala

我目前正在研究如何在Scala中处理协变和逆变类型参数化.还有一个特例,var字段必须是private [this]才能编译.从此代码段中的示例(在此问题中采用:private [this] vs private):

class Holder[+T] (initialValue: Option[T]) {
    // without [this] it will not compile
    private[this] var value = initialValue

    def getValue = value
    def makeEmpty { value = None }
}
Run Code Online (Sandbox Code Playgroud)

我理解这个例子.但我无法理解的是,在什么情况下,私有字段可以从其他实例访问而不是itselt(this)?

谢谢你的帮助.

Dav*_*ess 5

如果成员是纯私有的,则可以从同一个类的其他实例访问它.该[this]后缀使其可见只包含它的实例.