从开始学java起就一直在用系统提供的回调函数,今天在本身写一个异步加载的工具类的时候,因为业务的需求,须要对onPostExecute()进行单独的处理。这就要用到回调函数了,虽然一直用系统的,可是本身写回调函数的时候仍是有那么点问题。上网看了别人的理解,发现说的不够清楚明白。在这里我把本身总结的写一下,省的之后本身忘了 java
进入正题: 异步
回调函数,顾名思义,就是往回调的函数。平时咱们用的监听器其实就是用回调函数实现的。监听器监听了某个事件,可是对于这个事件怎么处理,他并不知道。这就须要调用监听器的人来定义对这个事件的处理了。 ide
其实际的用法,我用一个简单的例子来实现,咱们在写一个功能类,算帐的功能类。一个商品的单价是10,咱们须要算出来全部商品的总价。可是总共有多少商品,咱们并不知道。这就须要调用咱们这个工具类的人传入这个参数。那么这个功能就须要他来实现了。 函数
咱们写的工具类: 工具
public class CallBack { //定义一个接口,让调用者实现这个接口,按照本身的意愿来提供数据或者实现本身的想法 public interface setNum { public int num(); } //这个类就是算总价的工具类,可是咱们不知道总共有多少商品,因此咱们在上面定义了一个接口,让调用者来给咱们提供数据 public void count(setNum setnum) { int a = setnum.num(); int b = a * 20; System.out.println(b + ""); } }调用者的代码:
public class invoke { public static void main(String[] args) { CallBack cb = new CallBack(); cb.count(new setNum() { @Override public int num() { int a = 10; return 10; } }); } }上面的这个例子对于需求来讲并不合适,由于往方法里面传入一个参数就OK了。可是这个写就很方便你们理解。并且刚开始用回调的新手能够比葫芦画瓢的去实现。
但愿你们都能用好回调函数。 spa