在此链接:https://stackoverflow.com/a/4055850/82609
它解释了这一点
case class Person(name: String, age: Int) {
override def productPrefix = "person: "
}
// prints "person: (Aaron,28)" instead of "Person(Aaron, 28)"
println(Person("Aaron", 28))
Run Code Online (Sandbox Code Playgroud)
有没有办法做一些事情,比如将case类与一些trait混合,提供比默认值更好的ToString?
我真的不喜欢没有打印字段名称,对于大型案例类,有时很难阅读日志.
是否有可能有这样的输出?
Person(
name="Aaron",
age=28
)
Run Code Online (Sandbox Code Playgroud)
rle*_*ndi 12
压倒一切toString()
怎么样?即使在特定的特征中(或者每次在case类的级别并调用对象函数),您也可以这样做.
trait CustomToString {
override def toString() = "do some reflection magic here"
}
case class Person(name: String, age: Int) extends CustomToString
println(Person("Belä", 222))
Run Code Online (Sandbox Code Playgroud)