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

时间:2012-12-31 13:06:53

标签: 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 }
}

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

感谢您的帮助。

1 个答案:

答案 0 :(得分:5)

如果成员是普通私有的,则可以从同一个类的其他实例访问它。 [this]后缀使其仅对包含它的实例可见。