【发布时间】:2019-08-30 05:02:50
【问题描述】:
我目前正在尝试提出一种构建命令行选项的方法,该选项在提供时可以采用一个必需参数或第二个可选参数(除了必需的参数)。我正在尝试使用 apache commons cli 来实现这一点。
即myProgram -a [整数]
myProgram -a "test" --> isValid
myProgram -a "test" 2 --> also isValid
我尝试过:
Option.builder("a").hasArg().numberOfArgs(2).optionalArg(true).build();
&
Option.builder("a").hasArg().numberOfArgs(2).build();
两者都没有按预期工作。第一个示例使两个参数都是可选的,并且允许传递违反要求的空参数。
第二个示例使两个参数都需要,并且在仅提供字符串类型 arg 时失败。
我查看了 commons cli 的文档,但他们提供的用例并没有涉及到像这样的复杂案例,同样没有从 api 文档中获得太多细节。
我希望程序在 -a 未提供任何值时会失败,但在提供 1 或 2 个参数时会成功,如前所示。
【问题讨论】:
标签: java command-line-arguments apache-commons-cli