我将API
调用(Retrofit
已使用)的响应传递给类并尝试将其强制转换为我的模型类。由于我正在使用改装进行API
调用,因此在使用 Gson 将其转换为模型类对象之前,它会根据服务器的响应生成链接的hashmap 。 (这就是我的理解,如果我错了,请纠正我)。我附上了一张我用响应对象调试时可以看到的图像。如何将此响应转换为我的模型类的对象或类型对象。 当我尝试将类型Object强制转换为我的活动中的模型类时,我遇到了类强制转换异常。
这是我的代码
call.enqueue(new Callback() {
@Override
public void onResponse(Call call, Response response) {
if (response.body() != null) {
List<CategoriesBaseModel> categoryBaseResponseList = (List<CategoriesBaseModel>) response.body();
List<Object> categoryResponseList = (List<Object>) categoryBaseResponseList.get(0).getData();
if (categoryResponseList != null) {
mCategoriesInterface.passCategoriesResponse(categoryResponseList, "HomeFragment");
}
}
}
@Override
public void onFailure(Call call, Throwable t) {
call.cancel();
}
});
CategoriesInterface categoriesInterface = new CategoriesInterface() {
@Override
public void passCategoriesResponse(List<Object> scheduleList, String name) {
CategoriesModel categoriesModel;
for (Object model : scheduleList){
categoriesModel = (CategoriesModel) model;
Log.d("TAG", "");
}
}
};
答案 0 :(得分:-1)
通过将Object转换为Json字符串并将其直接转换回模型类对象来解决此问题。
Gson gs = new Gson();
String js = gs.toJson(model);
categoriesModel = gs.fromJson(js, CategoriesModel.class);