用于在Kotlin中生成toString()方法的简短语法(用于非数据类)
在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中有没有简写的语法,或者是一些第三方解决方案?
如果你允许Apache Commons Lang ,你可以使用ToStringBuilder ,它允许:
override fun toString() = ToStringBuilder(this) .append("field1", field1) .append("field2", field2) .toString()
或者以某种速度为代价,采用较短的reflection解决方案:
override fun toString() = ToStringBuilder.reflectionToString(this)
可以通过将不同的ToStringStyle
传递给构建器来更改格式。
我不相信Kotlin本身对此有任何支持。
- Kotlin将对象转换为另一个对象
- 如何在kotlin中获取当前的类文件名
- Kotlin Custom View类实现了一个无法在`:app:compileDebugKotlinAfterJava`中解析的接口。 相同的Java版本正常工作
- 在混合Java / Kotlin项目中使用Dagger 2的Maven配置
- Android Access在建设时被拒绝
- Kotlin:在Linux上加密的家庭:java.io.FileNotFoundException(文件名太长)
- Kotlin数据成员可以通过kotlin默认getter和setter在java中初始化吗?
- 如何从Kotlin调用Java的字符串构造函数(char ,int offset,int length)?
- Java / Kotlin注释处理器:获取注释字段/属性的类型