首页 > 解决方案 > 如何用 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 中完成这个?

标签: jcommander

解决方案


推荐阅读