3
GsonにカスタムJsonデシリアライザを登録するには?リストのためのKotlin Gsonカスタムデシリアライザ
Javaコードでデシリアライザを登録すると、すべて正常に動作しますが、KotlinをJavaに変換するとデシリアライザメソッドが呼び出されません。
Kotlinレジスタコード:
val listType: Type = object : TypeToken<List<Advert>>() {}.type
val gson = GsonBuilder()
.registerTypeAdapter(listType, deserializer)
val retrofit = Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
Javaコード:
Type listType = new TypeToken<List<Advert>>() {}.getType();
Gson gson = new GsonBuilder()
.registerTypeAdapter(listType, deserializer)
Retrofit retrofit = new Retrofit.Builder()
.addConverterFactory(GsonConverterFactory.create(gson))
デシリアライザ宣言:
class AdvertsDeserializer : JsonDeserializer<List<Advert>> {
override fun deserialize(json: JsonElement?, typeOfT: Type?,
context: JsonDeserializationContext?): List<Advert> {
呼び出すメソッド
私が理解しているように、Jsonオブジェクト(listType)の型の問題、または私が間違っていることは何ですか?
ワイルドカードをsupperssするために使用するために、それは私の問題を解決するためのおかげだされますか! –