更改数据类的toString格式

问题描述

我有一个自定义对象名称列表,名称Days,其中包含3个属性keyvalueisChecked。 以下是天数列表:

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

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

数据类:

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

现在,我不想打印每个对象的最后一个属性,即isChecked=trueisChecked=false ..我该如何实现呢?我尝试了filtermap的lambda,但是没有得到想要的结果。

预期o / p:[Days(key=Monday,value=9:30 AM),value=9:30 AM)]

解决方法

您必须自己编写list.map { "Days(key=${it.key},value=${it.value})" } .also { println(it) } 的替代版本。

     let arrDepartment = []
                         this.DepartmentIR.forEach(e=>{
                            arrDepartment.push(e.Department)
                         })
                     
                        this.RisksIndicatorsIR.forEach(e=>{   
                            let x = {...e}
                            x.Departments = arrDepartment    
                            console.log(x)
                        })
                    })
,

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

    for (item in days) println(item)
}

输出:

Days(key=monday,value=9:30)
Days(key=Tuesday,value=9:30)