通过反射调用带有命名参数的方法

时间:2014-03-11 12:21:09

标签: scala

假设我定义了以下案例类:

case class A(x: Int, y: String, s: Double)

我希望能够通过反射动态调用复制方法来实现以下内容:

val a1 = A(1, "hello", 2.3)
val a2 = a1.copy(y = "goodbye")  // Do this with reflection???

是否可以通过反射进行复制?

由于 Des

1 个答案:

答案 0 :(得分:2)

目前,Scala的运行时反射库并没有提供一种方便的方法来调用带有命名/默认参数的方法。当用户在声明顺序中为所有参数显式提供参数时,当前API仅允许对方法进行反射调用。请将问题提交给我们的错误跟踪器,我们很乐意对其进行调查。