Как клонировать объект в Котлине?

вопрос так прост.

документация Котлин описывает клонирование только при доступе к Java и в enum class. В последнем случае clone просто бросает исключение.

Итак, как я / должен клонировать произвольный объект Kotlin?

должен ли я просто использовать clone() как в Java?

1 ответов


на data class, вы можете использовать сгенерированный компилятором copy() метод. Обратите внимание, что он будет выполнять мелкую копию.

создать копию коллекции, используйте toList() или toSet() методы, в зависимости от типа коллекции, вам нужно. Эти методы всегда создают новую копию коллекции; они также выполняют мелкую копию.

для других классов нет решения для клонирования, специфичного для Kotlin. Вы можете использовать .clone() если оно одевает ваши требования, то или построить другое решение, если это не так.