Java 中所有回调实现的代码相同
Same code for all callback implementations in Java
我有回调接口:
public interface OnServerDoneListener {
void onDone(int code, byte[] body);
void onFailure();
}
它在应用程序的许多地方用作 HTTP 请求的侦听器:
HttpClient.getInstance().post(request, new OnServerDoneListener() {
@Override
public void onDone(int code, byte[] body) {
}
@Override
public void onFailure() {
}
});
现在我想为 onFailure 回调的所有实现调用相同的代码(例如使用 super)。并在某些情况下根据需要覆盖它。如何重构?
定义一个实现接口 OnServerDoneListener
的抽象 class,然后在那里定义方法 onFailure
。
public abstract class OnServerDoneAdapter implements OnServerDoneListener {
public void onFailure(){
//your defination.
}
}
之后,你可以传递那个class的对象(或匿名内部class)而不是接口。
HttpClient.getInstance().post(request, new OnServerDoneAdapter() {
@Override
public void onDone(int code, byte[] body) {
}
});
我有回调接口:
public interface OnServerDoneListener {
void onDone(int code, byte[] body);
void onFailure();
}
它在应用程序的许多地方用作 HTTP 请求的侦听器:
HttpClient.getInstance().post(request, new OnServerDoneListener() {
@Override
public void onDone(int code, byte[] body) {
}
@Override
public void onFailure() {
}
});
现在我想为 onFailure 回调的所有实现调用相同的代码(例如使用 super)。并在某些情况下根据需要覆盖它。如何重构?
定义一个实现接口 OnServerDoneListener
的抽象 class,然后在那里定义方法 onFailure
。
public abstract class OnServerDoneAdapter implements OnServerDoneListener {
public void onFailure(){
//your defination.
}
}
之后,你可以传递那个class的对象(或匿名内部class)而不是接口。
HttpClient.getInstance().post(request, new OnServerDoneAdapter() {
@Override
public void onDone(int code, byte[] body) {
}
});