在此链接上: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))
有没有办法做一些事情,比如将case类与一些trait混合,提供比默认值更好的ToString?
我真的不想打印字段名称,对于大型案例类,有时很难阅读日志。
是否可以有这样的输出?
Person(
name="Aaron",
age=28
)
答案 0 :(得分: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))