我正在使用
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允许我访问被解析的对象,它将使我的生活更轻松.