JAVA的Callback和CallbackHandler怎么用
一般用匿名内部类实现callback
CallbackHandler 是以与应用程序相关的方式实现的。例如,通过实现带有图形用户界面(GUI)的应用程序,可以弹出窗口,以提示请求的信息或显示错误消息。实现也可以选择从替换源获取请求信息,而不询问终端用户。
java中怎么使用callback函数
在很多场景,作为开发都会想到,在执行完毕一个任务的时候,能执行一个callback函数是多么好的事情。
现在模拟一下这个情景:
定义三个类。分别是主函数类。callback函数的接口类。业务处理类。在业务处理类中,处理完业务之后,执行一个callback函数。
[java] view plain copy
package comz;
public class Main {
public static void main(String[] args) {
new TestCallBack().compute(1000, new ComputeCallBack() {
@Override
public void onComputeEnd() {
System.out.println(“end back!!!”);
}
});
}
}
这是主函数类。new了一个业务处理类来处理逻辑,并在处理完毕之后,执行callback函数。
[java] view plain copy
package comz;
public class TestCallBack {
public void compute(int n, ComputeCallBack callback) {
for (int i = 0; i n; i++) {
System.out.println(i);
}
callback.onComputeEnd();
}
}
这是业务处理类。仅仅输出一些数字,然后执行回调函数。
[java] view plain copy
package comz;
public interface ComputeCallBack {
public void onComputeEnd();
}
这是回调函数的接口。
————————————–
运行上面的代码,就会在输出结束的时候调用在Main里面的callback函数,输出System.out.println(“end back!!!”);
————————————–
这里的原理是:
在主类中,新建业务类的时候,传递进去的第二个参数是一个实现了回调接口的匿名类对象。
在业务类中,我们调用了这个对象的onComputeEnd方法。在执行onComputeEnd的时候,jvm会找到这个对象的函数实现并调用。于是就输出了end back!!!
Java call和callback的用法
A对象调用B接口的b方法,b方法又反过来调用A对象中的c方法。
A调用B接口时把自身给B接口,至于怎么处理,由B的实现类去做,不关A的事。
原文出自 希望能帮到你
Java的回调函数和观察者模式的区别
java的回调 叫listener 模式。
无论是listener模式,还是C++里面的callback模式,本质是一样的
他们都是观察者模式的具体实现。
观察者模式是设计模式中定义的一种思想,而具体到不同的语言环境,使用不同的语法表现出来就会有java的listener objc的 delegate,或者C++的 callback。
Java 什么是回调
所谓回调,就是客户程序Client调用服务程序Service中的某个方法A,然后Service又在某个时候反过来调用Client中的某个方法B,对于Client来说,这个B便叫做回调函数
回调实现的步骤
1、定义回调接口和回调方法
2、Client实现回调接口和回调方法,并在Client中包含Service引用,通过引用调用Servie中的方法并且必须传入一个当前对象Client(因为当前对象实现了CallBack接口所以也属于接口对象)
3、在Service中定义一个接口对象并在方法中对初始化(将Client传过来的当前对象赋值给接口对象),通过接口对象调用接口中方法(调用的Client实现的接口方法)
4、测试
java 可以一次请求多次返回数据吗?
这和java本身没太大关系,一次调用只会有一个返回的数据,哪怕是异步轮询,里面实际上也是多次异步调用才能多次拿到返回
不知道你是不是想使用callback的模式,将callback实例(或者利用lambda表达式)传入到某个方法中可能能达到你的目的