在伴随对象中无法访问 Scala class 的私有值
Private value of a Scala class is not accessible in the companion Object
我有一个 Scala class 和它的伴随对象(在 Client.scala 中)如下:
class Client(val key: Int) {
private val num_bits = 5
}
object Client {
val count_entries = Math.pow(2, num_bits).toInt
println(count_entries)
}
但是,它会在 not found: value num_bits
的客户端对象中引发错误。有人可以帮忙吗?
你是对的。 Companion 对象是一个 单例 对象,而 classes 有 多个 实例。因此,您必须拥有 class 的实例才能访问其字段 - 否则,对象中的 num_bits
将引用 class 的哪个实例?
你可以这样使用它:
class Client(val key: Int) {
private val num_bits = 5
}
object Client {
val count_entries = Math.pow(2, new Client(0).num_bits)
println(count_entries)
}
如果你想使用它,你必须创建对象。
我有一个 Scala class 和它的伴随对象(在 Client.scala 中)如下:
class Client(val key: Int) {
private val num_bits = 5
}
object Client {
val count_entries = Math.pow(2, num_bits).toInt
println(count_entries)
}
但是,它会在 not found: value num_bits
的客户端对象中引发错误。有人可以帮忙吗?
你是对的。 Companion 对象是一个 单例 对象,而 classes 有 多个 实例。因此,您必须拥有 class 的实例才能访问其字段 - 否则,对象中的 num_bits
将引用 class 的哪个实例?
你可以这样使用它:
class Client(val key: Int) {
private val num_bits = 5
}
object Client {
val count_entries = Math.pow(2, new Client(0).num_bits)
println(count_entries)
}
如果你想使用它,你必须创建对象。