android - 无法使用不同的模型进行改造
问题描述
我正在使用改造,当我使用回调方法时,改造迫使我使用相同的模型,但我的响应有不同的模型。
WebserviceHelper.getInstancePost().getbook(10).enqueue(new Callback< serverModel>() {
@Override
public void onResponse(Call<serverModel> call, Response<serverModel> response) {
data = (List<advertise_book>) response.body().getResult();
adapter = new advertise_adapter(getActivity(), data);
list.setLayoutManager(new LinearLayoutManager(getContext()));
list.setAdapter(adapter);
Log.w("response", response.message());
}
@Override
public void onFailure(Call<serverModel> call, Throwable t) {
Log.w("response", t.getMessage());
}
});
当我使用上面的代码时一切都很好,但是当我在不同的活动中使用下面的代码时,我得到了使用serverModel而不是servermodel_note的错误
WebserviceHelper.getInstancePost().getnote(10).enqueue(new Callback<servermodel_note>() {
@Override
public void onResponse(Call<servermodel_note> call, Response<servermodel_note> response) {
data = (List<advertise_note>) response.body().getResult();
adapter = new note_adapter(getActivity(), data);
list.setLayoutManager(new LinearLayoutManager(getContext()));
list.setAdapter(adapter);
Log.w("response", response.message());
}
@Override
public void onFailure(Call<servermodel_note> call, Throwable t) {
}
});
这是我的错误
错误:不兼容的类型:<匿名回调<servermodel_note>> 无法转换为回调<serverModel>
问题是什么?
解决方案
对于改造调用,回调中的Call
和Response
参数的泛型onResponse
由方法的返回类型定义。
例如,下面的方法将要求将Call<User>
andResponse<User>
参数传递onResponse
到此调用的回调中:
@POST("users/new")
Call<User> createUser(@Body User user);
不同的响应需要不同的调用定义。在您的改造类中创建一个额外的调用定义,它返回一个Call<servermodel_note>
.
推荐阅读
- r - 如何根据另一个数据帧的 2 列(开始和结束)中指定的范围标记一个数据帧的行?
- java - 如果 .java 文件中有多个类,如何执行它?
- swift - 使用 Accelerate 的两个数组的元素最大值
- javascript - 正则表达式从给定字符串中删除下划线
- excel - Excel条件格式 - 根据一行单元格中的值结束单元格颜色
- javascript - JavaScript:检测画布中的形状
- node.js - React 应用程序错误:无法构造“WebSocket”:可能无法从通过 HTTPS 加载的页面启动不安全的 WebSocket 连接
- reactjs - React-Native 状态未定义
- haskell - 检查字符串是否在“i”字母处是回文?
- java - Java,从 input.txt 读取文件有问题