Java 回调函数

Posted 鲁迅认识的那只猹

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 回调函数相关的知识,希望对你有一定的参考价值。

回调函数

我对回调函数的理解

假设:

我的车在家里,现在已经坏了,我打电话给万能的维修工,我告诉他,嘿!哥来帮我修一下我的车吧!但是,维修工告诉我没有现在空闲,等有空闲了我可以上门服务!我告诉维修工如果你有空了那么你就直接来我家给我修理吧。

换成程序而言:

     如果我想让一个类,调用我自己声明的方法,那么我需要一个一个回调接口来让我自己的类去实现它。通过这样来实现回调函数。回调函数就好像是C#中的委托。Java中并没有类似的机制。可以利用接口来实现回调。


下面是一个小的Demo:

下面是一个简单的类包含了一个我想要进行回调的方法,实现了IWorkAble这个回调接口。

 1 public class Caller implements IWorkAble{
 2     /*
 3      * 这个是我想要被回调的方法
 4      * */
 5     @Override
 6     public void work() {
 7         
 8         System.out.println("我是 call类的方法,我成功的让 call ,我成功的让 worker 调用!");
 9     }
10 
11 }

下面是回调接口:

1 public interface IWorkAble {
2     //只是简单的定义了一个简单的方法
3     void work();
4 }

下面是进行回调操作的类:

 1 public class Worker  {
 2     
 3     //回调接口对象,会通过里氏转换法则经Caller对性赋值给这个变量,通过这个变量来完成回回调操作
 4     IWorkAble workAble ;
 5     
 6     /*
 7      * 为对应的回调函数赋值
 8      * */
 9     public  void setWorkAble(IWorkAble iwa) {
10         this.workAble=iwa;
11     }
12     
13     public void work() {
14         workAble.work();
15     }
16 }

 

总结:

  回调函数的实现其实使用了一种简单的动态代理模式,当想要执行的时候进行执行即可。

 

以上是关于Java 回调函数的主要内容,如果未能解决你的问题,请参考以下文章

Facebook状态回调不适用于片段

满足条件时是不是可以在 GLSL 着色器中回调 C/C++ 函数/代码? [关闭]

Java回调函数的理解与实现

Java回调函数

java回调函数问题?

从本机 c 代码 (JNI) 为 Java 中的回调函数传递多个参数