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()
函数。