关于java回调

电灯泡 2011-09-20 12:50:43
csdn上看到一帖子讲java回调机制,有代码如下:

public interface ICallback {
public void func();
}

public class ClassWithCallbackFunction implements ICallback{
public ClassWithCallbackFunction() {
}
public void func(){
System.out.println("cccccccccccccccccc");
}
}

public class Caller {
ICallback callback;
public void doCallback() {
callback.func();
}

public void setCallback(ICallback callback) {
this.callback = callback;
}

}

public class MainClass {
public MainClass() {
}

public static void main(String[] args) {
Caller caller = new Caller();
caller.setCallback(new ClassWithCallbackFunction() {
public void func() {
System.out.println("aaaaaaaaaa");
}
});
caller.doCallback(); //????????????? why not print
}
}

为什么MainClass的caller.doCallback()没有打印语句,感觉要嘛打印aaaaaaaa,要嘛打印cccccc,但不打印,why?
...全文
77 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
电灯泡 2011-09-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 k3108001263 的回复:]

Java code

//我的机器能打印aaaaaaaaaa,你的机器神马牌子的,高级不愿意打印它们


interface ICallback {
public void func();
}

class ClassWithCallbackFunction implements ICallback {
public ClassWithCallbackFunction() {
……
[/Quote]谢谢了,我的失误,是有值的
lsl19881120 2011-09-20
  • 打赏
  • 举报
回复
lz,你再试试,确实打印了,是aaaaaaaa!
uastation 2011-09-20
  • 打赏
  • 举报
回复
这里的回调也就是函数的手动调用吧.
TKD03072010 2011-09-20
  • 打赏
  • 举报
回复
eclipse 中 调用 debug 来调试
既可知道整个代码的执行步骤 即程序的调用过程
也能知道程序运行结果的由来
打油的程序员 2011-09-20
  • 打赏
  • 举报
回复

//我的机器能打印aaaaaaaaaa,你的机器神马牌子的,高级不愿意打印它们


interface ICallback {
public void func();
}

class ClassWithCallbackFunction implements ICallback {
public ClassWithCallbackFunction() {
}

public void func() {
System.out.println("cccccccccccccccccc");//实现接口方法
}
}

class Caller {
ICallback callback;

public void doCallback() {
callback.func();
}

public void setCallback(ICallback callback) {
this.callback = callback;
}

}

public class MainClass {
public MainClass() {
}

public static void main(String[] args) {
Caller caller = new Caller();
caller.setCallback(new ClassWithCallbackFunction() {
public void func() {//这里已经重写了func方法,你不重写这个它,它就会打印"cccccccccccccccccc"
System.out.println("aaaaaaaaaa");
}
});
caller.doCallback(); // ????????????? why not print
}
}
/*output:
aaaaaaaaaa
*/


62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧