您的位置:首页 > 编程语言 > Java开发

Java回调机制

2016-06-15 16:06 337 查看
之前有一些问题求教别人,别人一直说写个回调函数就解决了,在网上查了半天还是没明白。心里万马奔腾。。

         今天在别人博客里面看了java回调机制,感触很多,也让我更一步的理解。废话不多说,奉上自己对回调机制的理解。如果哪里不对请大神指出。

首先举个例子,

1. A有个问题需要求助B,

2.A对B说,还有点别的事我先忙,等你答案出来通知我。

3.B拿到A的问题,经过一段时间的思考,得到答案,马上反馈给A。

4.A拿到B的答案,开开心心的去装逼了。。。哈哈 开个玩笑

执行回调机制的步骤

1.定义一个接口

      public interface Set_textview {
void getTexts(String string);//这个方法用来执行回调
}

2。在A类中定义一个方法,(有求于别人)
public class Main implements Set_textview {//实现接口,用于回调
private SetTextView setTextView;

public Main(SetTextView setTextView) {//初始化
this.setTextView = setTextView;
}

public void setContent(final String string) {//A求B帮忙
new Thread(new Runnable() {
@Override
public void run() {
setTextView.getContent(Main.this, string);//B帮忙,解决问题
}
}).start();
}

@Override
public void getTexts(String string) {//B解决问题之后,返回的答案给A  string就是答案内容

}
}


3.在B类中定义一个方法来解决A的问题
public class SetTextView {

public void getContent(Set_textview set_textview, String string) {//传入接口参数,实现接口里面的方法来解决A类中提出的问题,
set_textview.getTexts("解决问题");
}

}

4.通过A类实现接口,自动生成回调方法

@Override
public void getTexts(String string) {
System.out.print("回调内容" + string);
}

5.测试类

public class Texts {
public static void main(String[] string) {
SetTextView setTextView = new SetTextView();//A类
Main main = new Main(setTextView);//B类
main.setContent("请问你是小鲜肉么");//A类的问题;
}
}

main.setContent()方法里面的具体操作可以参考上面的A类

个人理解基本就是这样
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java回调机制