【发布时间】:2017-11-23 12:10:24
【问题描述】:
在 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 或第三方解决方案中是否有任何简写语法?
【问题讨论】:
-
我不知道这样的解决方案(例如 Lombok @toString),也许您可以实现一个抽象类并使用反射覆盖 toString 一次以使其通用,但看起来不是个好主意。或者尝试在 Kotlin slack 频道询问,有很多 JB 人,他们更了解
-
是否有你不想要额外方法的原因,或者只是为了减少方法的数量?