如何在 Kotlin 中使用扩展属性作为常量?

How to use extension properties in Kotlin as constants?

我有数据class

data class User(
        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE)
        val userId: Long = 0,

        @Column(nullable = false, unique = true)
        val email: String = "",

        @Column(nullable = false)
        val firstName: String = "",
)

我讨厌使用“”进行初始化。我想使用类似

的东西
 @Column(nullable = false)
 val firstName: String = String.EMPTY

我知道扩展属性或函数,但它们看起来也不太好

val firstName: String = "".empty()
val firstName: String = "".EMPTY

实体 classes 是怎么写的?有没有更优雅的方式?

如果你真的想使用String.EMPTY,你可以在String的伴随对象上创建一个扩展属性:

val String.Companion.EMPTY: String
    get() = ""

这种情况下的用法就像您展示的那样:

val firstName: String = String.EMPTY

(这个在官方文档中有提到here。)