如何使用接口来实现回调(callback)

takecare 2004-09-16 01:28:34
因为java不可能想c/c++那样传入函数指针,那如何来做呢?——接口!
有谁愿意写个例子?
顺便也散点分,最近0分的贴子不少哦。
...全文
580 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
heidongstar 2004-09-16
  • 打赏
  • 举报
回复
楼主,结贴吧。
heidongstar 2004-09-16
  • 打赏
  • 举报
回复
一个更为完整的实现。
import java.io.*;
interface call
{

public void proc(sender src,int wparam);


}

class sender
{
protected call ie;

public sender(call event)
{
ie=event;
}
public void nofify(int wparam)
{

ie.proc(this,wparam);


}




}

class receiver implements call
{



public void proc(sender src,int par)
{

System.out.println(src);
System.out.println(par);

}


}
class sandr extends sender
implements call
{


public sandr(call event)
{
super(event);


}


public void proc(sender src,int par)
{

System.out.println(src);
System.out.println(par);

}



}
public class callback
{


public static void main(String[] args)
{
sandr s1=new sandr(null);
sandr s2=new sandr(s1);
s2.nofify(10);
s1.proc(s2,10);
s2.proc(s1,10);

}

}
heidongstar 2004-09-16
  • 打赏
  • 举报
回复
这个我研究过,下面是个简单的例子,估计java的事件处理机制就是这么做的。
import java.io.*;
interface call
{
public void callme();
}

class inst implements call
{
public void callme()
{
System.out.println("Call inst");

}


}

public class callback
{
static void run(call cc)
{
cc.callme();
}

public static void main(String[] args)
{

run(new inst());

}

}
nwpulipeng 2004-09-16
  • 打赏
  • 举报
回复
接分哈!楼主这么高深的问题,我想很少有人能回答得了的啊
zcjl 2004-09-16
  • 打赏
  • 举报
回复
http://dev.csdn.net/Develop/article/30%5C30867.shtm
这个是我搜索出来的
不知道有没有用?
kingfish 2004-09-16
  • 打赏
  • 举报
回复
觉得callback这个在c++里比较明确,传个函数指针就行了

只要自己没有明确调用那个函数但通过别的方式调用了就算callback,如java里通过接口调子类函数,还有reflect,但总觉得有点牵强。 个人理解,呵呵
diaopeng 2004-09-16
  • 打赏
  • 举报
回复
用对象数组试试
umbrella1984 2004-09-16
  • 打赏
  • 举报
回复
那你去哪里混?家里混了?不准跑!!!









把分留下。。。嘿~
takecare 2004-09-16
  • 打赏
  • 举报
回复
下午就结贴,今天lp生日,不能在这里混了,嘻嘻。
diaopeng 2004-09-16
  • 打赏
  • 举报
回复
用对象数组试试,或者用全局变量吧
takecare 2004-09-16
  • 打赏
  • 举报
回复
啊,人气不旺呀。
umbrella1984 2004-09-16
  • 打赏
  • 举报
回复
某个类实现接口方法,传这个类的对象过去?
opencsdn 2004-09-16
  • 打赏
  • 举报
回复
老大,只能顶!

62,615

社区成员

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

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