class Response<T>(
JHeader header;
T result;
)
class JHeader(
Int success;
List<String> error;
)
class Character{
@SerializedName("id_") Int id;
@SerializedName("levelA") String level
@SerializedName("a3") unit: String = "
Character(Int id, String level) {
this.id = id
this.level= level
}
}
Retrofit.Builder()
.addCallAdapterFactory(rxAdapter)
.addConverterFactory(GsonConverterFactory.create())
.baseUrl(BASE_URL)
.client(httpClient.build())
.build()
public Observable<Response<List<Character>>> getCharacterById(characterID: Int){
return apiService.getCharacter(characterID)
.subscribeOn(Schedulers.io())
}
我有一个为角色制作的自定义类型适配器。
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(Character.class, new CharacterTypeAdapter());
Gson gson = gsonBuilder.create();
Gson在反序列化列表时完全忽略了我的类型适配器,所以我猜因为泛型类型擦除,List被视为List对象或其他东西,所以我的适配器不会被使用。
使用Retrofit2。有没有什么办法可以用泛型做,而不必每次我需要解析包含列表的响应时都为列表创建自定义类?