在获得单个活动的响应时,我们必须编写大量回调,并且必须获取这些代码的 onResponse()和 onFailure()。是否有任何可管理的方式,以便我们可以使用唯一的 onFailure()和 onReponse()来覆盖单个回调?
例如
private void fetchMoviesFromWeb(int pageNumber, String moviesCategories) {
Callback<MoviesInfo> moviesInfoCallback = new Callback<MoviesInfo>() {
@Override
public void onResponse(Response<MoviesInfo> response) {
}
@Override
public void onFailure(Throwable t) {
}
};
retrofitManager.getMoviesInfo(moviesCategories, pageNumber, Constants.API_KEY, moviesInfoCallback);
}
/************** **********/
private void fetchMoviesCommentFromWeb()
{
Callback<MoviesComment> moviesInfoCallback = new Callback<MoviesComment>() {
@Override
public void onResponse(Response<MoviesComment> response) {
}
@Override
public void onFailure(Throwable t) {
}
};
retrofitManager.getMoviesInfo(moviesCategories, pageNumber, Constants.API_KEY, moviesInfoCallback);
}
答案 0 :(得分:1)
当你只需要两种方法中的一种时,你可以将这两种方法实现为no-op并从该回调中扩展:
public abstract class AbstractCallback<T> implements Callback<T> {
@Override
public void onFailure(Throwable t) {
// ignore by default
}
@Override
public void onResponse(Response<T> response) throws IOException {
// ignore by default
}
}
Callback<MoviesComment> moviesInfoCallback = new AbstractCallback<MoviesComment>() {
@Override
public void onFailure(Throwable t) {
// only do something with the failure
}
}