A类持有B接口的对象引用,B接口有一个callBack()方法,C类是B类的实现类,实现了callBack()方法,把C类传入A类,当A类执行完操作后调用callBack()方法,这时候A调用的就是C类callBack()方法,相当于通知了C“我的操作完成了”,我们只要在C类的callBack()方法写处理就可以了,这就是回调。
接口B定义如下:
package callback_study;
public interface B {
public void cllBack(String result);
}
接口B的实现类C定义如下:
package callback_study;
public class C implements B {
@Override
public void cllBack(String result) {
// TODO Auto-generated method stub
if (result.equals("操作完成")) {
System.out.println("我是C,收到A的通知,A已经做完工作");
}
}
}
A类的定义如下:
package callback_study;
public class A {
B objectB;
public void setObjectB(B objectB) { this.objectB = objectB; } //将接口的实现类传进来
public void operation() {
/* * 业务操作 * 业务操作 * */
objectB.cllBack("操作完成");
}
}
main函数所在的类定义如下:
package callback_study;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
A objectA=new A();
objectA.setObjectB(new C()); //这是一个接口实现类
objectA.operation(); }
}
以上代码可复现,可以亲自跑跑代码体会一把。希望能帮到大家。