使用Argparse4j的命令行参数设置标志

时间:2015-03-02 15:30:55

标签: java command-line-arguments argparse4j

我使用argparse4j来解析命令行参数。我想添加一个参数,当存在时,将布尔值设置为true,否则默认为false。我不想在参数中包含true或false,只是标识符,因此在运行时它看起来像这样:

java firstArg --enable-boolean

This answer表明在Python中,我可以设置参数的action来存储真值或假值,如下所示:

parser.add_argument('-b', action='store_true', default=False)

如何使用argparse4j在Java中执行相同的操作?

1 个答案:

答案 0 :(得分:2)

您正在寻找Arguments.storeTrue()行动:

  

Arguments.storeTrue()Arguments.storeFalse()是   Arguments.storeConst()用于存储的特殊情况   值分别为truefalse。另外,他们创造了   默认值分别为falsetrue。例如:

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)