java之回调
2017-01-09 17:17
363 查看
回调(callback)总结
之前做项目的时候用过回调,当时用的时候还算了解了,然而做完项目之后,过了一段时间,在想到回调,突然发现只记得我用过回调,但是具体的概念和方法却忘得差不多了,今天就再次回顾了回调的用法。1.概念
在我的理解里,回调就是当你调用一个方法时,把你本身的实例也当做参数传给此方法,当此方法执行完时,就会使用你传进去的实例来调用你自己创建的回调方法,回调方法就是用来通知你此方法已经执行完毕。2.实现
回调接口public interface Callback { void onResult(boolean isSave); }
被调用方法
public class FileIO { public void saveToFile(String filename,String content,Callback c){ new Thread(new Runnable() { @Override public void run() { System.out.println(filename+content); c.onResult(true); } }).start(); } }
调用者
public class XiaoLin implements Callback{ public void saveStr(){ String filename = "callback.txt"; String content = "这是一个回调的例子"; FileIO f = new FileIO(); f.saveToFile(filename, content, this); } @Override public void onResult(boolean isSave) { System.out.println("isSave:"+isSave); } public static void main(String[] args) { XiaoLin xiao = new XiaoLin(); xiao.saveStr(); } }
3.总结
总之,实现回调方法,要有三个类:1.一个回调接口,用来实现调用方法结束后需要做什么,即有一个方法用来实现功能(例:onResult);
2.一个被调用方法,此方法其中一个参数就是回调接口,方法功能执行完后,需要使用回调接口的实例调用回调方法;
3.一个调用者,此类需要实现回调接口,即implements。这样就可以自定义回调方法,编写当你调用被调用方法结束后,需要做什么。当调用被调用方法时,需要把自己的类的实例传进去。
最后,分享一篇关于回调的文章
Java帝国之拨云见日识回调
全文一蹴而就并没有更多时间来修改,可能隐藏着诸多错误,行文也可能不甚通顺,还请各位指正和海涵。