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的抽象类,然后定义方法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) {
}
});

最新更新