-2

斯卡拉 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()      //   >-(

解决方案?

4

1 回答 1

2

即使您的代码应该可以工作(我怀疑这里有一些隐含的论点),您也可以通过这样做来简化它

object A {
  def apply(x: Int=0): A = New A(x)
}

虽然更短,但缺点是不那么 DRY

于 2013-09-19T05:34:29.007 回答