例如,我想以这种方式更改所有 setter :
this.a = StringUtils.trim(a);
如果是java bean,我可以通过修改ide的代码生成模板来实现。但是 Intellij 似乎不支持为 kotlin 数据类自动添加 getter/setter。
有没有办法做到这一点?
最佳答案
从 Kotlin 1.1 开始,没有办法做到这一点。
Kotlin data class ,在大多数情况下,是一个“除了保存数据什么都不做”的类。
我认为最接近的方法是在类初始化时验证数据并将数据类属性设置为只读值。例如:
data class Data(val a: String) {
init {
require(a == a.trim())
}
}
以下不会抛出异常:
val a = Data("ab")
val b = a.copy(a = "abc")
虽然以下将:
val c = a.copy(a = "abc ")
关于intellij-idea - 是否可以将模板添加到数据类的 getter/setter 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44297260/