假设我们有一个类构造函数,它接受具有默认值的参数。
class A(val p1 : Int = 3, val p2 : Int = 4)
假设我无法控制这个类,也无法修改它。我想要做的是用 p1 = 5, p2 = 调用 A 的构造函数(如果 condition1 == true 那么 5 else 默认值)。一种方法是
if(condition1)
x = new A(5,5)
else
x = new A(5)
正如你所看到的,如果有很多参数并且每个参数都必须有条件地提供,这很容易变大。我想要的是类似的东西
x = new A(p1 = 5, p2 = <if condition1 = true then 5 else default>)
我怎样才能做到这一点?请注意,A 类中的字段是 val,因此在实例化 A 后我无法更改它们。