我有这个班级
public static class ErrorUtils {
public static APIError parseError(Response<LoginResponse> response, Retrofit retrofit) {
Converter<ResponseBody, APIError> converter =
retrofit.responseConverter(APIError.class, new Annotation[0]);
APIError error;
try {
error = converter.convert(response.errorBody());
} catch (IOException e) {
e.printStackTrace();
return new APIError();
}
return error;
}
}
我想更改parseError
的方法签名以接受任何类型的Response<>
而不只是Response<LoginResponse>
我该怎么做?
编辑:澄清:我正在阅读有关Retrofit 2错误处理的本教程。 https://futurestud.io/blog/retrofit-2-simple-error-handling
我想将ErrorUtils类移动到我的RetrofitClient类,然后移出LoginUserRetrofitImpl类,以便我可以在所有网络请求改进实现中使用此错误处理代码。
答案 0 :(得分:2)
由于您似乎并未真正使用LoginResponse
特有的内容,因此您可能只需将其更改为
public static APIError parseError(Response<?> response, Retrofit retrofit) {
Converter<ResponseBody, APIError> converter =
retrofit.responseConverter(APIError.class, new Annotation[0]);
APIError error;
try {
error = converter.convert(response.errorBody());
} catch (IOException e) {
e.printStackTrace();
return new APIError();
}
return error;
}