Применение в котлин перечислении - PullRequest
0 голосов
/ 26 марта 2019

Безопасно ли использовать приложение в котлине enum?Как это:

enum class Labels(title: String, type: Int) {
     PERFORM(App.application.getString(R.string.perform), 0),
     DUTY(App.application.getString(R.string.duty), 1),
     ... ...
}

1 Ответ

1 голос
/ 26 марта 2019

Я бы не использовал App класс в enum. Вместо этого я бы передавал только идентификатор ресурса, потому что мы не можем полагать, что экземпляр класса App создается в момент первой загрузки класса enum:

enum class Labels(val titleResId: Int, val type: Int) {
   PERFORM(R.string.perform, 0),
   DUTY(R.string.duty, 1),
   ... ...
}

И позже мы можем использовать его, например, в Activity, например:

textView.setText(Labels.PERFORM.titleResId)
...