我在我的项目中使用retrofit2,我需要将一些json答案解析为自定义对象。所以我创建了反序列化器并在GsonBuilder中调用它
private final Gson _gson = new GsonBuilder()
.registerTypeAdapter(DaysList.class, new DaysDeserializer())
.create();
之后我定义了Retrofit
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(_activity.getString(R.string.config_api_url))
.addConverterFactory(GsonConverterFactory.create(_gson))
.build();
但定义了改装服务
Call<DaysList> retrofitHolidaysRequest()
我有一个例外。之后我将方法签名更改为服务方法,它变为:
DaysList retrofitHolidaysRequest()
我还在Retrofit.Builder中添加了自己的CallAdapter.Factory,一切都按照我的需要运行:
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(_activity.getString(R.string.config_api_url))
.addConverterFactory(GsonConverterFactory.create(_gson))
.addCallAdapterFactory(new ResponseCallAdapterFactory())
.build();
所以问题是:是否有可能在没有定义自己的CallAdapter的情况下创建自己的反序列化器?如果有可能那么我做错了什么?