我使用argparse4j来解析命令行参数。我想添加一个参数,当存在时,将布尔值设置为true,否则默认为false。我不想在参数中包含true或false,只是标识符,因此在运行时它看起来像这样:
java firstArg --enable-boolean
This answer表明在Python中,我可以设置参数的action
来存储真值或假值,如下所示:
parser.add_argument('-b', action='store_true', default=False)
如何使用argparse4j在Java中执行相同的操作?
答案 0 :(得分:2)
您正在寻找Arguments.storeTrue()
行动:
Arguments.storeTrue()
和Arguments.storeFalse()
是 Arguments.storeConst()用于存储的特殊情况 值分别为true
和false
。另外,他们创造了 默认值分别为false
和true
。例如:public static void main(String[] args) throws ArgumentParserException { ArgumentParser parser = ArgumentParsers.newArgumentParser("prog"); parser.addArgument("--foo").action(Arguments.storeTrue()); parser.addArgument("--bar").action(Arguments.storeFalse()); parser.addArgument("--baz").action(Arguments.storeFalse()); System.out.println(parser.parseArgs(args)); }
$ java Demo --foo --bar Namespace(baz=true, foo=true, bar=false)