Функция clone

Функция clone позволяет создать копию элемента перечисления (enum). В Kotlin все enum-элементы являются объектами (синглтонами), поэтому фактически clone возвращает тот же самый объект. Метод предоставлен для совместимости с Java-кодом.

Синтаксис

kotlinprotected final fun clone(): Any

Пример

Создадим enum и попробуем клонировать его элемент:

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

val original = Direction.NORTH
val cloned = original.clone()
println(original == cloned)

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

kotlinBoolean true

Пример

Попробуем сравнить ссылки на объекты:

kotlinval original = Direction.NORTH
val cloned = original.clone()
println(original === cloned)

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

kotlinBoolean true

Примечание

В Kotlin элементы enum являются синглтонами, поэтому метод clone всегда возвращает тот же самый объект. Это поведение отличается от Java, где clone создает новый объект для обычных классов.

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

  • метод values,
    который возвращает массив всех элементов enum
  • метод valueOf,
    который возвращает элемент enum по имени
  • метод name,
    который возвращает имя элемента enum
  • метод ordinal,
    который возвращает порядковый номер элемента enum