【问题标题】:Same code for all callback implementations in JavaJava中所有回调实现的代码相同
【发布时间】:2018-12-06 16:38:29
【问题描述】:

我有一个回调接口:

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)。如果需要,在某些情况下覆盖它。如何重构?

【问题讨论】:

    标签: java android interface callback listener


    【解决方案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) {
    
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-01
      相关资源
      最近更新 更多