Issue


Pageable로 받아오는 데이터가  대부분이었는데. 클래스를 하나 작성하여 재사용하기 위해 Generics를 사용하던 중 다음과 같은 이슈가 발생하였다.

Kotlin에서 Generics (<*>, <Any>)를 사용했을 때 Gson으로 변환하여 클래스에 매핑하려고 하면 'com.google.gson.internal.LinkedTreeMap' 이슈가 발생한다.

(Java에서는 <?>를 사용했을 때 동일한 이슈가 발생함)



Solution


in Kotlin

val type = object : TypeToken<List<클래스>>() {}.type
val className = Gson().fromJson<List<클래스>>(json... , type)





자바에서도 처음에는 타입토큰을 이용하여 변환을 하였다가 Collections를 이용했었는데

코틀린에서도 더 간소화하여 사용하는 방법을 생각해봐야겠다.