Как определить параметр с арностью 0 или 1 - PullRequest
0 голосов
/ 20 сентября 2018

Я использую 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?

...