Как использовать свойства расширения в Kotlin в качестве констант? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть класс данных

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

Как вы пишете классы сущностей?Есть ли более элегантный способ?

1 Ответ

0 голосов
/ 27 сентября 2018

Если вы действительно хотите использовать String.EMPTY, вы можете создать свойство расширения для сопутствующего объекта String:

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

Использование в этом случае такое же, как вы показали:

val firstName: String = String.EMPTY

(это упоминается в официальной документации здесь .)

...