Я новичок в Kotlin, и у меня есть перечисление, содержащее много значений, эти значения относятся к различным состояниям, которые есть в моем приложении.
Теперь мне нужно что-то регистрировать всякий раз, когда приложение входит в состояние, но какое-то состояние в перечислении может регистрировать более одной вещи (на основе других параметров, поступающих извне приложения), и для какого-то состояния не нужно что-то регистрировать.
Вот мое перечисление:
enum class StateName(vararg log: String) {
FIRST_CONNECTION(), // no parameter here
AUTHORIZATION_CHECK("message 1", "message 2"),
HANDSHAKE_SUCCESS("message")
//...
}
Если бы объявил enum с одним обязательным параметром StateName(var log: String)
Я мог бы использовать HANDSHAKE_SUCCESS.log
для получения его значения, но с vararg
IDE (android studio) вообще не находит log
.
Так, как я могу получить свою строку с чем-то вроде log[0]
?
Примечание
- Мое перечисление уже определено (без параметров) и используется в моем приложении, и я не могу использовать другой метод изменения фактического состояния / добавления функции ведения журнала
- Мне нужно использовать Kotlin, даже если я только начал учиться, так как проект был написан на этом языке, поэтому я просто хочу знать, могу ли (и как) сделать это.