【发布时间】:2020-04-26 19:41:18
【问题描述】:
我在为 Scala 中的案例类调用 toString 方法时遇到了一些不一致的问题。第一个代码示例:
case class Person(name: String, age: Int)
val jim = Person("jim", 42)
println(jim)
输出:Person(jim,42)
对于下一个代码示例,我使用了一个扩展 Exception 的案例类:
case class JimOverslept(msg: String) extends Exception
try {
throw JimOverslept(msg = "went to bed late")
} catch {
case e: JimOverslept => println(e)
}
输出:playground.CaseClassOutput$JimOverslept
其实我更喜欢JimOverslept(went to bed late)这样的输出
两个输出如此不同的原因是什么?获得输出的最佳方法是什么(JimOverslept(went to bed late))
【问题讨论】:
标签: scala inheritance tostring case-class