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() // >-(
解决方案?
答案 0 :(得分:2)
即使您的代码应该有效(我怀疑某些隐含的参数在这里工作) 你可以通过
来简化它object A {
def apply(x: Int=0): A = New A(x)
}
虽然较短,但缺点是DRY