在Kotlin中,可以为数据类生成toString()
方法:
data class Foo(...)
但是使用数据类有一些限制,而且Kotlin编译器会生成其他方法,我不希望在我的代码中使用这些方法。
在Java中,只需添加一行带有toString()
注释的代码,就可以使用Lombok生成@ToString
方法:
@ToString
public class Foo {
...
}
不幸的是,Lombok不能与Kotlin合作,所以我每次都要手动实现toString()
方法:
class Foo {
...
override fun toString(): String {
// bunch of code here
}
}
在Kotlin或者某些第三方解决方案中是否有任何简写语法?
答案 0 :(得分:0)
如果您允许Apache Commons Lang,则可以使用允许此内容的ToStringBuilder:
override fun toString() = ToStringBuilder(this)
.append("field1", field1)
.append("field2", field2)
.toString()
或者以某种速度为代价,采用更短的反射解决方案:
override fun toString() = ToStringBuilder.reflectionToString(this)
可以通过将不同的ToStringStyle
传递给构建器来更改格式。
我不相信Kotlin本身对此有任何支持。