如何在Scala中实现具有静态自增加成员的类?

时间:2014-11-01 12:54:51

标签: scala

我想使用Scala实现一个类:

class Ref(name: String, size: Int)

如果我想在这个类中添加一个静态成员,我需要添加一个componion对象:

object Ref {
  private var id: Int = 0
}

然后,当我创建一个对象,例如val ref = new Ref("某事",20)时,我该如何让会员" id"可以自我增加(比如id = id + 1)?

2 个答案:

答案 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 
}