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

Java函数回调机制

2017-03-24 16:10 267 查看
利用java的函数回调方式,开辟子线程执行耗时操作。写一个demo程序,方便以后查看。。函数回调简单说就是,方法的实现在其调用之后。

1.主要存在两个接口,一个是CallBackI负责将回调值输出到主线程;另一个HttpManger接口定义执行耗时操作的方法

2.代码如下:

public class CallBack {
public static void main(String[] args) {
getdata(new CallBackI() {
@Override
public void start() {
System.out.println("start");
}
/**
* 执行回调,取得输出
*/
@Override
public void getData(int result) {
System.out.println(result);
}
@Override
public void end() {
System.out.println("end");
}
});
}
/**
* 回调接口
* @author yuliyan
*
*/
public interface CallBackI{
public void start();
public void getData(int result);
public void end();
}
/**
* 执行回调耗时操作接口
* @author yuliyan
*/
public interface HttpManger{
public void action(int result);
}
/**
* 封装回调操作,主线成调用该方法即可
* @param callBackI
*/
public static void getdata(CallBackI callBackI){
callBackI.start();
//开辟线程执行耗时操作
HttpManger hManger = new HttpManger() {
@Override
public void action(int result) {
callBackI.getData(result);
callBackI.end();
}
};
new HttpGetData(hManger).start();;
}
}
/**
* 耗时操作
* @author yuliyan
*/
class HttpGetData implements Runnable{
HttpManger hManger;
public HttpGetData(HttpManger hManger){
this.hManger = hManger;
}
public void start(){
new Thread(this).start();
}
@Override
public void run() {
//耗时操作代码写在这
int count =0;
for(int i=0;i<1000;i+=2){
count+=i;
}
hManger.action(count);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: