【发布时间】:2013-08-08 15:40:17
【问题描述】:
也许我在 C 中想了很多,但我没有看到如何在 java 中正确解决这个问题的解决方案。 我收到来自服务器的响应,该响应发送如下字符串:
command params <xml...>
客户端接收该字符串并提取命令。现在我想调用一个知道如何处理命令的函数。在 C 方面,解决方案是显而易见的。我用命令名称和相关的函数指针实现了一个数组,所以我可以简单地遍历数组并调用函数。
在 Java 上也有办法做到这一点吗?我不知道我可以根据名称调用函数。所以目前我看到以下选项:
- 做一系列
if(command.euqals(COMMAND) - 对于每个命令,我可以创建一个单独的对象,我可以将其存储在一个数组中(非常混乱)。
- 使用反射,所以我可以有一个函数名与命令名的映射。
还有其他选择吗?
if 语句不是最好的 IMO,但至少它允许编译器错误和类型检查。使用反射至少更优雅,因为我可以更轻松地循环和扩展它,但当然,这意味着如果我输错名称,我只能看到运行时错误。
【问题讨论】:
标签: java jump-table