在Java中确定从用户输入调用的方法

在Java中确定从用户输入调用的方法,java,controls,user-input,irc,flow,Java,Controls,User Input,Irc,Flow,所以我正在用Java编写一个简单的IRC客户端。到目前为止,我正在尝试确定用户正在键入什么命令。我知道我可以使用一堆if-else语句,但这不是很好的做法。我想用一个开关,但我正试图找到一个替代方法 例如:我有一些命令,PASS,NICK,USER,JOIN,PART,MODE 还有一些来自用户的示例输入:NICK John 我可以检索输入,但我希望有一种干净、高效的方法,能够告诉程序调用方法_nick(John),然后将其发送到服务器 只要在正确的方向上指出一点就好了。我不知道如何在没有开关/

所以我正在用Java编写一个简单的IRC客户端。到目前为止,我正在尝试确定用户正在键入什么命令。我知道我可以使用一堆if-else语句,但这不是很好的做法。我想用一个开关,但我正试图找到一个替代方法

例如:我有一些命令,PASS,NICK,USER,JOIN,PART,MODE

还有一些来自用户的示例输入:NICK John

我可以检索输入,但我希望有一种干净、高效的方法,能够告诉程序调用方法_nick(John),然后将其发送到服务器


只要在正确的方向上指出一点就好了。我不知道如何在没有开关/if-else的情况下处理这个问题。

一个很好的方法是使用switch-case;)

可以将带有命令字符串的映射用作操作的键和命令对象。这就是所谓的


另一种方法是使用反射。

+1用于贴图方法。在此上下文中不要使用反射
Map<String,Action> m=new Map<String,Action>();
m.put("NICK", new Action() { public void execute() {... } });
m.put("PASS", new Action() { public void execute() {... } });
 m.get(command_from_irc).execute();