Java中所有回调实现的相同代码

时间:2018-06-27 17:41:15

标签: 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 void onDone(int code, byte[] body) {

        }

        @Override
        public void onFailure() {

        }
    });

现在,我想为onFailure回调的所有实现调用相同的代码(例如,使用super)。并在某些情况下根据需要覆盖它。如何重构它?

1 个答案:

答案 0 :(得分:1)

定义一个实现接口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) {

    }
});