14

在此链接上: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)) 

有没有办法做一些事情,比如将案例类与某些特征混合,确实提供了比默认更好的 ToString?

我真的不喜欢不打印字段名称,而且对于大型案例类,有时很难阅读日志。

有可能有这样的输出吗?

Person(
  name="Aaron",
  age=28
)
4

1 回答 1

13

覆盖怎么样toString()?您甚至可以在特定特征中执行此操作(或每次在案例类级别并调用对象函数)。

trait CustomToString {
  override def toString() = "do some reflection magic here"
}

case class Person(name: String, age: Int) extends CustomToString

println(Person("Belä", 222))
于 2013-07-05T14:00:20.497 回答