2015-03-02 106 views
1

我正在使用argparse4j來解析命令行參數。我想添加一個參數,當存在時,將boolean設置爲true,否則它默認爲false。我不想以包括參數的真或假,只是標識,所以在運行時會是這個樣子:使用帶Argparse4j的命令行參數設置標誌

java firstArg --enable-boolean 

This answer顯示,在Python中,我可以設置參數的action存儲像這樣一個true或false值:

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

我如何做同樣的事情在Java中,使用argparse4j?

+0

這也被稱爲命令行「標誌」。如果你顯示更多的代碼會有所幫助;你已經工作了,哪一部分沒有工作。我從你鏈接的答案中添加了示例代碼,因爲你想知道如何做同樣的事情。 – Air 2015-03-06 23:33:01

回答

2

您正在尋找的Arguments.storeTrue()行動:

Arguments.storeTrue()Arguments.storeFalse()使用,用於分別存儲 值truefalseArguments.storeConst() 特殊情況。另外,它們分別創建 默認值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)