컴퓨터공부/Kotlin & Java

Kotlin에서 변수 깊은 복사(Deep copy) 하기

achivenKakao 2021. 8. 26. 03:30

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