Java中所有回调实现的代码相同
我有一个回调接口:Java中所有回调实现的代码相同,java,android,interface,callback,listener,Java,Android,Interface,Callback,Listener,我有一个回调接口: public interface OnServerDoneListener { void onDone(int code, byte[] body); void onFailure(); } 在整个应用程序的许多地方,它被用作HTTP请求的侦听器: HttpClient.getInstance().post(request, new OnServerDoneListener() { @Override public
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)。在某些情况下,如果需要,可以覆盖它。如何重构它?定义一个抽象类,它在ServerDoneListener上实现接口
,然后在那里定义方法onFailure
public abstract class OnServerDoneAdapter implements OnServerDoneListener {
public void onFailure(){
//your defination.
}
}
之后,您可以传递该类的对象(或匿名内部类),而不是接口
HttpClient.getInstance().post(request, new OnServerDoneAdapter() {
@Override
public void onDone(int code, byte[] body) {
}
});