jcommander - 如何用 arity 0 或 1 定义参数
问题描述
我正在使用 jcommander 1.72 来处理 REPL 中的命令(不是直接从命令行)。我有一个可以选择取值的参数;如果提供了值,则设置该值。如果未提供任何值,则打印当前值。例如:
> myCmd --foo 5
set foo = 5
> myCmd --foo
current value of foo = 5
我试过这个:
@Parameter(names = {"-f", "--foo"}, variableArity=true)
List<String> foo = new ArrayList<>()
但我得到这个错误:
com.beust.jcommander.ParameterException: Expected a value after parameter --foo
at com.beust.jcommander.JCommander.processFixedArity(JCommander.java:886)
at com.beust.jcommander.JCommander.processVariableArity(JCommander.java:859)
at com.beust.jcommander.JCommander.parseValues(JCommander.java:705)
at com.beust.jcommander.JCommander.parse(JCommander.java:340)
at com.beust.jcommander.JCommander.parseValues(JCommander.java:787)
at com.beust.jcommander.JCommander.parse(JCommander.java:340)
at com.beust.jcommander.JCommander.parse(JCommander.java:319)
...
我怎样才能在 jcommander 中完成这个?
解决方案
推荐阅读
- amazon-web-services - AWS Elasticbeanstalk 部署突然失败
- sql - 如何覆盖另一个表中的行?
- php - PHP将变量从foreach传递给函数
- python - 全新安装 lambda 堆栈后,ai-benchmark 无法正常工作
- python - 如何在python中使用带有日期时间的循环
- python - 在不丢失类型的情况下将 BigQuery 提取到换行符分隔的 JSON
- flutter - 使用辅助功能选项时,包装小部件不会防止溢出
- scrapy - 如何在不爬入scrapy的情况下回调301重定向?
- javascript - 正则表达式替换 url 中的数字
- flutter - 在使用 freezed 实现模型时,常量创建的参数必须是常量表达式