Kotlin 更改数据类的字符串格式
我有一个自定义对象名列表,名为Kotlin 更改数据类的字符串格式,kotlin,tostring,data-class,Kotlin,Tostring,Data Class,我有一个自定义对象名列表,名为Days,其中3个属性key、value和已被选中。 以下是日期列表: listOf( Days("monday","9:30",false), Days("Tuesday","9:30",true) ) 输出:[天(键=星期一,值=上午9:30,isChecked=真),天(键=星期二,值=上午9:30,isChecked
Days
,其中3个属性key
、value
和已被选中。
以下是日期列表:
listOf(
Days("monday","9:30",false),
Days("Tuesday","9:30",true)
)
输出:[天(键=星期一,值=上午9:30,isChecked=真),天(键=星期二,值=上午9:30,isChecked=真)]
数据类:
data class Days(
val key: String,
var value: String,
var isChecked:Boolean
)
现在,我不想打印每个对象的最后属性,即isChecked=true
或isChecked=false
。我如何实现这一点。我尝试了filter
和map
lambdas,但没有得到想要的结果
预期o/p:[天(键=星期一,值=上午9:30),天(键=星期二,值=上午9:30)]
您必须自己编写此替代版本的toString()
list.map { "Days(key=${it.key}, value=${it.value})" }
.also { println(it) }
如果要更改对象转换为字符串时的显示方式,请重写toString()
函数:
data class Days(
val key: String,
var value: String,
var isChecked: Boolean
) {
override fun toString(): String = "Days(key=$key, value=$value)"
}
fun main() {
val days = listOf(
Days("monday", "9:30", false),
Days("Tuesday", "9:30", true)
)
for (item in days) println(item)
}
输出:
Days(key=monday, value=9:30)
Days(key=Tuesday, value=9:30)
嘿,谢谢。!但是这将返回'list',我想要'list',Days类的实例没有这个属性。那将是一个完全不同的类。我有天
作为数据类,列表作为列表。我不明白你要什么。您是否只想更改打印Days
类时获得的内容?如果是这样,则必须重写toString()
函数。