java中的函数回调代码 java回调函数写法

java中怎样定义回调函数

程序员A写了一段程序(程序a),其中预留有回调函数接口,并封装好了该程序。程序员B要让a调用自己的程序b中的一个方法,于是,他通过a中的接口回调自己b中的方法。目的达到。在C/C++中,要用回调函数,被掉函数需要告诉调用者自己的指针地址,但在JAVA中没有指针,怎么办?我们可以通过接口(interface)来实现定义回调函数。

创新互联是一家专业的成都网站建设公司,我们专注成都网站设计、网站制作、网络营销、企业网站建设,友情链接广告投放为企业客户提供一站式建站解决方案,能带给客户新的互联网理念。从网站结构的规划UI设计到用户体验提高,创新互联力求做到尽善尽美。

假设我是程序员A,以下是我的程序a:

[java] view plaincopyprint?

public class Caller

{

public MyCallInterface mc;

public void setCallfuc(MyCallInterface mc)

{

this.mc= mc;

}

public void call(){

this.mc.method();

}

}

还需要定义一个接口,以便程序员B根据我的定义编写程序实现接口。

public interface MyCallInterface

{

public void method();

}

于是,程序员B只需要实现这个接口就能达到回调的目的了:

public class B implements MyCallInterface

{

public void method()

{

System.out.println("回调");

}

public static void main(String args[])

{

Caller call = new Caller();

call.setCallfuc(new B());

call.call();

}

}

Java 技巧:用 Java 实现回调例程

熟悉 MS Windows 和 X Window System 事件驱动编程模型的开发人员 习惯于传递在某种事件发生时调用(即 回调 )的函数指针 Java 的面向对象模型目前并不支持方法指针 这样似乎就不可能使用这种很好的机制 但我们并不是一点办法都没有! Java 的接口支持提供了一种获得回调的等价功能的机制 其技巧就是 定义一个简单接口 并在该接口中声明我们要调用的方法 例如 假定我们希望在某个事件发生时得到通知 我们可以定义一个接口 public interface InterestingEvent{// 这仅是一个常规方法 因此如果需要 // 它可有返回值 也可接收参数 public void interestingEvent ();}这使得我们可以控制实现该接口的类的任何对象 因此 我们不必关心任何外部类型信息 与在将 C++ 代码用于 Motif 时使用窗口小部件的数据域来容纳对象指针的难以控制的 C 函数相比 这种方法要好得多 发出事件信号的类必须等待实现了 InterestingEvent 接口的对象 并在适当时候调用 interestingEvent() 方法 public class EventNotifier{private InterestingEvent ie;private boolean somethingHappened;public EventNotifier (InterestingEvent event){// 保存事件对象以备后用 ie = event;// 还没有要报告的事件 somethingHappened = false;}// public void doWork (){// 检查在别处设置的谓词 if (somethingHappened){// 通过调用接口的这个方法发出事件信号 ie interestingEvent ();}// }// }在上例中 我使用 somethingHappened 谓词来跟踪是否应触发事件 在许多情况下 调用此方法足以保证向 interestingEvent() 发出信号 希望接收事件通知的代码必须实现 InterestingEvent 接口 并将自身引用传递给事件通知程序 public class CallMe implements InterestingEvent{private EventNotifier en;public CallMe (){// 创建事件通知程序 并将自身引用传递给它 en = new EventNotifier (this);}// 为事件定义实际的处理程序 public void interestingEvent (){// 噢!必定发生了感兴趣的事件!// 执行某些操作 }// } lishixinzhi/Article/program/Java/JSP/201311/19423

java 如何写回调方法

public class Caller  

{  

public MyCallInterface mc;  

public void setCallfuc(MyCallInterface mc)  

{  

this.mc= mc;  

}  

public void call(){  

this.mc.method();  

}  

}

接口

public interface MyCallInterface  

{  

public void method();  

}

测试

public class B implements MyCallInterface  

{  

public void method()  

{  

System.out.println("回调");  

}  

public static void main(String args[])  

{  

Caller call = new Caller();  

call.setCallfuc(new B());  

call.call();  

}  

}


网站栏目:java中的函数回调代码 java回调函数写法
网站网址:http://scjbc.cn/article/ddgspgs.html

其他资讯