哪个类实现了回调监听接口中的方法,就回去调用哪个类中的对应的方法。

主函数中调用HttpUtils的get方法,第二个参数传入View的实例,那么当get方法内部执行到listener调用方法的地方的时候,就会去回调View中的方法。
这就是回调方法
例子:
//回调接口public interface Listener {void onSucceed(String info);void onFailed(String info);}
//模仿网络访问类public class HttpUtils {//参数是url和对应的监听器public void get(String url, Listener listener){//开启延时的一个线程模拟网络访问new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(1500);} catch (InterruptedException e) {e.printStackTrace();}//对网络访问结果进行判断并接着调用相应的监听器的方法if (url==null){listener.onFailed("error");}else {listener.onSucceed("anyInfo");}}}).start();}}
//实现了监听器的类,那么如果调用HttpUtils中的get()方//法,并且将View的实例作为监听器传入时,当网络访问得//到结果时,就会回头调用View类中的如下两个方法。public class View implements Listener{@Overridepublic void onSucceed(String info) {System.out.print(info);}@Overridepublic void onFailed(String info) {System.out.print(info);}}
入口main函数
public class Main {public static void main(String[] args) throws Exception {View view = new View();new HttpUtils().get("anyUrl", view);}}
点击run : 延时一秒后打印:anyInfo
