包含Kotlin中toString()中数据类主体中声明的属性
在Kotlin中,是否可以在默认的包含Kotlin中toString()中数据类主体中声明的属性,kotlin,tostring,Kotlin,Tostring,在Kotlin中,是否可以在默认的toString()结果中包含在数据类主体中声明的属性 data class A(val b:Int = 0) { val c: Int = 0 } println(A()) 打印:A(b=0) 所需:A(b=0,c=0)不在生成的toString中,该字符串将仅在主构造函数中声明属性(如中所述)。但是,如果您想: data class A(val b:Int = 0) { val c: Int = 0 override fun to
toString()
结果中包含在数据类主体中声明的属性
data class A(val b:Int = 0) {
val c: Int = 0
}
println(A())
打印:A(b=0)
所需:
A(b=0,c=0)
不在生成的toString
中,该字符串将仅在主构造函数中声明属性(如中所述)。但是,如果您想:
data class A(val b:Int = 0) {
val c: Int = 0
override fun toString(): String {
return "A(b=$b, c=$c)"
}
}
你为什么要这样做呢?嗯,那真是太遗憾了,因为计算出来的属性(比如从出生日期算起的年龄等)被省略了。我只是不明白,只要它们被宣布为公共财产,为什么它们不被打印出来呢。