我想使用Scala实现一个类:
class Ref(name: String, size: Int)
如果我想在这个类中添加一个静态成员,我需要添加一个componion对象:
object Ref {
private var id: Int = 0
}
然后,当我创建一个对象,例如val ref = new Ref("某事",20)时,我该如何让会员" id"可以自我增加(比如id = id + 1)?
答案 0 :(得分:4)
使用AtomicInteger
来避免增加id
值的并发错误。
object Ref {
private val id = new AtomicInteger()
def next = id.incrementAndGet()
}
class Ref(name: String, size: Int) {
val id = Ref.next
}
答案 1 :(得分:0)
您可以在主构造函数中增加计数器
object Ref {
var id: Int = 0
}
class Ref {
Ref.id = Ref.id + 1
}