Функция clone
Функция clone позволяет создать копию элемента перечисления (enum).
В Kotlin все enum-элементы являются объектами (синглтонами), поэтому
фактически clone возвращает тот же самый объект. Метод предоставлен
для совместимости с Java-кодом.
Синтаксис
protected final fun clone(): Any
Пример
Создадим enum и попробуем клонировать его элемент:
enum class Direction {
NORTH, SOUTH, EAST, WEST
}
val original = Direction.NORTH
val cloned = original.clone()
println(original == cloned)
Результат выполнения кода:
Boolean true
Пример
Попробуем сравнить ссылки на объекты:
val original = Direction.NORTH
val cloned = original.clone()
println(original === cloned)
Результат выполнения кода:
Boolean true
Примечание
В Kotlin элементы enum являются синглтонами, поэтому метод clone
всегда возвращает тот же самый объект. Это поведение отличается от Java,
где clone создает новый объект для обычных классов.