Противоречивое объявление 'name' в enum
У меня есть простой enum класс, в котором я хотел бы иметь поле с именем name.
enum class DeviceFieldQuery(val clazz: Class<*>) {
id(Int::class.java),
name(String::class.java),
}
К сожалению, это не похоже на работу в Котлине. Компиляция завершается с сообщением:
Ошибка:(9, 5) Kotlin: Конфликтующие объявления: имя записи enum, общедоступное конечное имя val: String
Тот же класс Enum, что и код Java, работает нормально. Как я могу решить это в Kotlin?
1 ответ
Перечисления в Котлине уже есть name
свойство уже определено (как Java). Это противоречит вашему перечислению name
, Чтобы исправить это, вы можете использовать заглавные буквы, что более идиоматично:
enum class DeviceFieldQuery(val clazz: Class<*>) {
Id(Int::class.java),
Name(String::class.java),
}