当前位置:  开发笔记 > 编程语言 > 正文

Java中的函数指针/委托?

如何解决《Java中的函数指针/委托?》经验,为你挑选了1个好方法。

对于我的Java游戏服务器,我发送数据包的Action ID,它基本上告诉服务器数据包的用途.我想将每个Action ID(一个整数)映射到一个函数.有没有办法不使用开关这样做?



1> Johannes Sch..:

这个如何?

HashMap map = new HashMap();
map.put(Register.ID, new Runnable() { 
    public void run() { functionA(); }
});
map.put(NotifyMessage.ID, new Runnable() { 
    public void run() { functionB(); }
});
// ...
map.get(id).run();

(如果需要传递一些参数,请使用具有合适参数的函数定义自己的接口,并使用该参数代替Runnable).


我认为函数A和functonB被调用的开关将是更清晰的代码.这只是将ID到函数的映射移动到您正在加载地图的代码部分,而不是您调用函数的位置.
推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有