Java 使用枚举执行命令
谢谢你的阅读 我想实现一个枚举,它给出一个有效命令列表。我要求用户提供一个命令和一些与之配套的参数(如果可以国际化,那就太好了)解析该列表,检查它是否是有效的命令,然后使用这些参数运行正确的命令,或者报告错误。如何让它调用函数并向其传递参数 这看起来像一个骨架,但据我所知,execute()必须是无参数的Java 使用枚举执行命令,java,command-line,enums,functor,Java,Command Line,Enums,Functor,谢谢你的阅读 我想实现一个枚举,它给出一个有效命令列表。我要求用户提供一个命令和一些与之配套的参数(如果可以国际化,那就太好了)解析该列表,检查它是否是有效的命令,然后使用这些参数运行正确的命令,或者报告错误。如何让它调用函数并向其传递参数 这看起来像一个骨架,但据我所知,execute()必须是无参数的 public enum CommandWords { OPEN() { public void execute() { Sy
public enum CommandWords {
OPEN() {
public void execute() {
System.out.println("Now opening");
}
},
SAVE() {
public void execute() {
System.out.println("save a file");
}
};
//And more methods, that actually manipulate the file
//template method
public abstract void execute();
}
对不起,有一件事我不清楚。我想要执行的方法,不在这个类中,而是在其他地方定义的。我需要向该方法传递参数。我很困惑,因为在现实中,我不想覆盖这个方法,我想保留对另一个方法的引用。怎么了?您可以像调用命令词一样调用
execute()
。OPEN.execute()。在您的示例中,抽象方法返回boolean
,并使用void
覆盖它。此外,我认为在这种情况下不需要使用@Override
。我认为它可能比单个enum.execute()可以有参数要灵活一些。例如objectexecute(Object…args)