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

Java接口回调

2017-09-15 10:45 459 查看
突然想起了,今天刚自学了java的接口回调,来整理一下。

实例:我经常叫我同学帮我买早饭,就拿这个做例子。

场景:我在上班时给他发了个短信:“帮我买一下早饭”然后我就去坐车了;然后他收到信息后,就去买早饭了,买到后就给我回复短信:买到了。

然后就开始实现:

1、一个回调接口:ICallBack.java

/**
* 回调接口
* @author Administrator
*
*/
public interface ICallBack {
/**
* 回调函数
* @param str
* @throws Exception
*/
public void callBack(String str)throws Exception;
}


2、接口实现类(我)

/**
* 回调接口实现类
* @author Administrator
*
*/
public class User01 implements ICallBack{
//User02的对象,就是我同学
private User02 user02=null;
public User01() {
user02=new User02();
}
public User01(User02 user02){
this.user02=user02;
}
@Override
public void callBack(String str) throws Exception {
System.out.println("user01收到结果:"+str);
}

/**
*实现我发信息给他,然后去坐车了
*/
public void method(String send){
System.out.println("user01告诉user02:"+send);
//线程实现异步
new Thread(new Runnable() {

@Override
public void run() {
//让user02去执行特定方法
try {
user02.thisMethod(User01.this, send);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
//做其他事情
others();
}
/**
*我坐车的方法
*/
private void others() {
System.out.println("user01在坐车...");

}

}


3、这个执行类(我同学)

public class User02 {
/**
*收到信息,并实行操作
*/
public void thisMethod(ICallBack iCallBack,String string ) throws Exception {
//System.out.println("执行语句:"+string);
//模拟其他处理
for(int i=0;i<10;i++) {

}
//结果
String result="结果";
//调用User01的回调方法
iCallBack.callMethod(result);
}
}


4、测试类:Test.java

public class Test {

public static void main(String[] args) {
User02 user02=new User02();
User01 user01=new User01(user02);
user01.method("帮我买一份早饭");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 接口回调