Свойство name

Каждый элемент enum в Kotlin имеет свойство name, которое возвращает имя этого элемента в виде строки типа String. Это свойство доступно только для чтения и автоматически генерируется компилятором для всех элементов enum.

Синтаксис

kotlinenumClassInstance.name

Пример

Создадим enum с несколькими элементами и получим их имена:

kotlinenum class Direction {
  NORTH, SOUTH, EAST, WEST
}

val dir = Direction.NORTH
println(dir.name)

Результат выполнения кода:

kotlinString "NORTH"

Пример

Использование свойства name в выражении when:

kotlinenum class Status {
  ACTIVE, INACTIVE, PENDING
}

val currentStatus = Status.PENDING

when (currentStatus.name) {
  "ACTIVE" -> println("Active status")
  "INACTIVE" -> println("Inactive status")
  "PENDING" -> println("Pending status")
}

Результат выполнения кода:

kotlinString "Pending status"

Пример

Сравнение имён элементов enum:

kotlinenum class Color {
  RED, GREEN, BLUE
}

val color1 = Color.RED
val color2 = Color.GREEN

println(color1.name == "RED")
println(color2.name == "RED")

Результат выполнения кода:

kotlinBoolean true
Boolean false

Пример

Получение всех имён элементов enum:

kotlinenum class Priority {
  LOW, MEDIUM, HIGH
}

val names = Priority.values().map { it.name }
println(names)

Результат выполнения кода:

kotlinArray<String> ['LOW', 'MEDIUM', 'HIGH']

Смотрите также

  • метод values,
    который возвращает все элементы enum
  • метод valueOf,
    который преобразует строку в элемент enum
  • свойство ordinal,
    которое возвращает порядковый номер элемента enum
  • функцию entries,
    которая возвращает все элементы enum в виде списка