假设我定义了以下案例类:
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???
是否可以通过反射进行复制?
谢谢 设计
最佳答案
目前,Scala 的运行时反射库没有提供一种方便的方法来调用具有命名/默认参数的方法。当前 API 仅当用户按声明顺序显式提供所有参数的实参时才允许对方法进行反射调用。请将问题提交给我们的错误跟踪器,我很乐意进行调查。
关于scala - 通过反射调用具有命名参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325585/