kotlin - 更改为数据类的String格式

标签 kotlin tostring data-class

我有一个名为 Days 的自定义对象名称列表,其中有 3 个属性 keyvalueisChecked。 以下是日期列表:

    listOf(
         Days("monday","9:30",false),
         Days("Tuesday","9:30",true)
         )

输出:[Days(key=Monday, value=9:30 AM, isChecked=true), Days(key=Tuesday, value=9:30 AM, isChecked=true)]

数据类:

data class Days(
    val key: String,
    var value: String,
    var isChecked:Boolean
)

现在我不想打印每个对象的最后一个属性,即 isChecked=trueisChecked=false..我怎样才能实现这一点。我尝试过 filtermap lambda,但没有得到想要的结果。

预期出发时间:[天数(key=星期一,value=9:30 AM),天数(key=星期二,value=9:30 AM)]

最佳答案

如果您想更改对象转换为字符串时的显示方式,请覆盖 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)

关于kotlin - 更改为数据类的String格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64775928/

相关文章:

python - 从另一个嵌套数据类访问嵌套类

kotlin - 有没有办法在数据类构建时转换属性的值?

Kotlin 数据类 : how to read the value of property if I don't know its name at compile time?

android - 创建 Fragment 时未设置 TextView

java - 如何重写 toString 并打印出 ArrayList 的自定义类类型

kotlin - 如何以不区分大小写的顺序对对象列表进行排序?

javascript - 如何将整个文档 HTML 作为字符串获取?

javascript - .toString(16) 总是返回小写字母吗?

java - 除非数字是数学整数,否则以两位小数打印 float

kotlin - 如何在 Canvas jetpack compose 上绘制 ImageVector