Deserializador personalizado Kotlin Gson para la list

¿Cómo registrar el deserializador Json personalizado en Gson?

Cuando estoy registrado deserializer en código java, todo funciona bien, pero cuando convierto Kotlin a Java, no se llama al método deserializador.

Código de logging de Kotlin:

val listType: Type = object : TypeToken<List<Advert>>() {}.type val gson = GsonBuilder() .registerTypeAdapter(listType, deserializer) val retrofit = Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create(gson)) 

Código Java:

 Type listType = new TypeToken<List<Advert>>() {}.getType(); Gson gson = new GsonBuilder() .registerTypeAdapter(listType, deserializer) Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(GsonConverterFactory.create(gson)) 

Declaración de deserializador:

 class AdvertsDeserializer : JsonDeserializer<List<Advert>> { override fun deserialize(json: JsonElement?, typeOfT: Type?, context: JsonDeserializationContext?): List<Advert> { 

Método de llamada

 // list is List<Advert> service.getAdverts() .subscribe({ list -> viewState.showAdvertsList(list) }, { error -> error.printStackTrace() }) 

Según entiendo, ¿problema en el tipo de object Json (listType) o qué estoy haciendo mal?