rye*_*guy 13 java delegates function-pointers
对于我的Java游戏服务器,我发送数据包的Action ID,它基本上告诉服务器数据包的用途.我想将每个Action ID(一个整数)映射到一个函数.有没有办法不使用开关这样做?
Joh*_*itb 22
这个如何?
HashMap<Integer, Runnable> map = new HashMap<Integer, Runnable>();
map.put(Register.ID, new Runnable() {
public void run() { functionA(); }
});
map.put(NotifyMessage.ID, new Runnable() {
public void run() { functionB(); }
});
// ...
map.get(id).run();
Run Code Online (Sandbox Code Playgroud)
(如果需要传递一些参数,请使用具有合适参数的函数定义自己的接口,并使用该参数代替Runnable).
| 归档时间: |
|
| 查看次数: |
9491 次 |
| 最近记录: |