没有参数的伴随构造函数:how-to?

时间:2013-09-18 22:12:24

标签: scala

Scala 2.10:

class A(val x:Int=0) {
}

object A {
  def apply(x:Int): A = new A(x)   // works
  def apply(): A = new A()         // fails to compile
}

val b = A(123)   //   :-)
val a = A()      //   >-(

解决方案?

1 个答案:

答案 0 :(得分:2)

即使您的代码应该有效(我怀疑某些隐含的参数在这里工作)  你可以通过

来简化它
object A {
  def apply(x: Int=0): A = New A(x)
}

虽然较短,但缺点是DRY