scala - 通过反射调用具有命名参数的方法

标签 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???

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

谢谢 设计

最佳答案

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

关于scala - 通过反射调用具有命名参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22325585/

相关文章:

Scala:检查2个变量是否属于同一类型

parsing - Scala 解析器失败处理、悬空逗号

scala - 聚集泛化和折叠泛化如何减少?

scala - 如何为 nd4j 和 deeplearning4j 设置 scala sbt 项目

Scala 反射 : knownDirectSubclasses only works for sealed traits?

scala - 多个参数和参数列表的准引用

java - 通过使用助手生成 html

Scala 函数式编程 : Should I use 'throw' or 'throw new' ?

scala - Spark - Scala - 用另一个数据框中的查找值替换数据框中的值

scala - 为所有子模块生成 jacoco 代码覆盖率报告