无法使用不同的模型进行改造
Not able to use different model for Retrofit
我正在使用 retrofit,当我使用回调方法时,retrofit 强制我使用相同的模型,但我的响应有不同的模型。
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());
}
});
当我使用上面的代码时一切都很好,但是当我在不同的 activity 中使用下面的代码时,我得到了使用 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) {
}
});
这是我的错误
error: incompatible types: <anonymous Callback<servermodel_note>>
cannot be converted to Callback < serverModel>
有什么问题?
对于改装调用,onResponse
回调中 Call
和 Response
参数的泛型由方法的 return 类型定义。
例如,下面的方法将要求将 Call<User>
和 Response<User>
参数传递到此调用的 onResponse
回调中:
@POST("users/new")
Call<User> createUser(@Body User user);
不同的响应需要不同的调用定义。在改造 class 中创建一个额外的调用定义,return 是 Call<servermodel_note>
。
我正在使用 retrofit,当我使用回调方法时,retrofit 强制我使用相同的模型,但我的响应有不同的模型。
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());
}
});
当我使用上面的代码时一切都很好,但是当我在不同的 activity 中使用下面的代码时,我得到了使用 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) {
}
});
这是我的错误
error: incompatible types: <anonymous Callback<servermodel_note>> cannot be converted to Callback < serverModel>
有什么问题?
对于改装调用,onResponse
回调中 Call
和 Response
参数的泛型由方法的 return 类型定义。
例如,下面的方法将要求将 Call<User>
和 Response<User>
参数传递到此调用的 onResponse
回调中:
@POST("users/new")
Call<User> createUser(@Body User user);
不同的响应需要不同的调用定义。在改造 class 中创建一个额外的调用定义,return 是 Call<servermodel_note>
。