Ответ
enum class в Kotlin используется для определения ограниченного набора именованных констант. В отличие от обычного enum в Java, enum class в Kotlin более мощный:
- Типобезопасность – компилятор проверяет допустимые значения.
- Может содержать свойства и методы:
enum class Direction(val degrees: Int) {
NORTH(0), EAST(90), SOUTH(180), WEST(270);
fun opposite() = when (this) {
NORTH -> SOUTH
EAST -> WEST
SOUTH -> NORTH
WEST -> EAST
}
}
- Реализует интерфейсы, но не наследуется.
- Автоматически получает методы
values(),valueOf().
Используется для замены магических чисел/строк, например, статусы, направления, ошибки.