【发布时间】:2012-08-20 12:23:08
【问题描述】:
在 scala 中是否有(或将在最近的特性中)可以创建带有命名参数的案例类?我的意思是在构造函数中使用命名参数来构造案例类对象。
我的案例类有很多字段。构造函数带有很多未命名的参数很容易出错。
我想得到(目前不工作的例子):
case class X(x0:String, x1:Int, x2:String)
val x = X(x0="Xstring", x1=12, x2="x2String")
作为解决方法,我们可以提供如下摘录所示的工厂方法,但这是一个丑陋的解决方案:
case class X(x0:String, x1:Int, x2:String)
object X {
private nullX = X(null, null, null)
def createX = nullX.copy _
}
val x = X.createX(x0="Xstring", x1=12, x2="x2String")
有什么线索吗? :)
编辑: 这是一些旧版本的 intellij idea scala 插件中的错误。 请不要再投反对票了;)
【问题讨论】:
-
我使用的是 scala 2.9.1-1。我将您的声明复制到 REPL 中,它确实有效。
-
Scala 已经有了命名和默认参数。
-
检查您的 Scala 版本:
scala -version
标签: scala case-class