Gson을 아래와 같이 이용하면 의도적으로 깊은 복사가 가능하다.
class Animal{
fun clone(): Animal
{
val stringAnimal = Gson().toJson(this, Animal::class.java)
return Gson().fromJson<Animal>(stringAnimal, Animal::class.java)
}
}
val originalAnimal = Animal()
val clonedAnimal = originalAnimal.clone()
단어. 얕은 복사(shallow copy), 깊은 복사(deep copy)
참고 : https://velog.io/@ellyheetov/Shallow-Copy-VS-Deep-Copy
출처 : https://stackoverflow.com/questions/49053432/how-to-clone-object-in-kotlin