gpt4 book ai didi

java - 在 Kotlin 中生成 toString() 方法的速记语法(用于非数据类)

转载 作者:行者123 更新时间:2023-12-02 12:28:14 26 4
gpt4 key购买 nike

在 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()

或者,以一些速度为代价,一个更短的反射解决方案:
override fun toString() = ToStringBuilder.reflectionToString(this)

可以通过传递不同的 ToStringStyle 来更改格式。给 builder 。

我不相信 Kotlin 本身对此有任何支持。

关于java - 在 Kotlin 中生成 toString() 方法的速记语法(用于非数据类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47455289/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com