在创建数据类时,我经常发现我想转换其中一个属性,通常是对其进行规范化或制作防御性副本。例如,在这里我想productCode
总是小写:
data class Product(val productCode: String)
我尝试添加一个init
块,希望 Kotlin 足够聪明,让我手动处理将构造函数参数分配给属性:
data class Product(val productCode: String) {
init {
this.productCode = productCode.toLowerCase()
}
}
但它将此视为重新分配。
我宁愿不必手动编写equals
/// hashCode
,而且IDE 生成的方法并没有好多少toString
。copy
有没有办法在数据类中转换构造函数参数?