【发布时间】:2017-04-13 05:34:24
【问题描述】:
情况:
我有一个带有lateinit 字段的类,所以它们不存在于构造函数中:
class ConfirmRequest() {
lateinit var playerId: String
}
我想要一个包含所有字段的toString() 方法,并且不想手动编写它,以避免锅炉打印。在 Java 中,我会使用 Lombok @ToString 注释来解决这个问题。
问题:
有没有办法在 Kotlin 中实现它?
【问题讨论】:
-
Lombok 可能仍然有效,不是吗?
-
Lombok 注释不起作用,解释:stackoverflow.com/questions/35517325/…
-
我建议在同一类中挑战
lateinint var和“数据”toString()的需求。如果不了解更多如何使用ConfirmRequest,很难做出推荐,但data class ConfirmRequest(var playerId: String? = null)对我来说似乎工作得很好。如果您知道在playerId == null时永远不会使用它,那么您可以将数据成员设为私有,并为方便起见公开一个公共的非空属性。 -
这个类是从 JSON 反序列化的,需要有空的构造函数
-
根据所使用的 Json 库,您实际上并不总是需要默认构造函数,例如 Jackson 不需要它。