我正在使用JCommander在命令行上与用户交互。
JCommander 设置如下所示:
JCommander jCommander = new JCommander();
jCommander.addCommand(new Command1());
jCommander.addCommand(new Command2());
jCommander.addCommand(new Command3());
Scanner scanner = new Scanner(System.in);
jCommander.usage();
jCommander.parse(splitAsArgs(scanner.nextLine())));
现在我可以使用getParsedCommand()来检索正在解析的命令的名称。
我的问题是,将返回的 String 转换为传递给addCommand
. 我可以在外部保存一张地图,进行这种翻译,但这是多余的,因为 jcommander 已经知道所有这些。
我应该如何将已解析命令的名称翻译回命令对象本身?
通常我传递给 jcommander 的所有命令实现Runnable
或类似的东西。因此,如果 jcommander 允许我访问已解析的对象,它将使我的生活更轻松。