首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Apache Commons CLI -选项类型和默认值

Apache Commons CLI -选项类型和默认值
EN

Stack Overflow用户
提问于 2011-04-08 02:15:51
回答 5查看 34K关注 0票数 42

如何为命令行界面选项指定类型-如intInteger?(稍后,如何通过单个函数调用获得解析后的值?)

如何为CLI选项提供默认值?以便CommandLine.getOptionValue()或上面提到的函数调用返回该值,除非在命令行中指定了该值?

EN

Stack Overflow用户

回答已采纳

发布于 2011-05-11 04:13:45

编辑:现在支持默认值。请参阅下面的answer

正如Brent Worden已经提到的,不支持默认值。

我在使用Option.setType时也遇到了一些问题。在类型为Integer.class的选项上调用getParsedOptionValue时,我总是得到一个空指针异常。因为文档并没有真正的帮助,所以我查看了源代码。

查看TypeHandler类和PatternOptionBuilder类,您可以看到Number.class必须用于intInteger

下面是一个简单的例子:

代码语言:javascript
运行
复制
CommandLineParser cmdLineParser = new PosixParser();

Options options = new Options();
options.addOption(OptionBuilder.withLongOpt("integer-option")
                      .withDescription("description")
                      .withType(Number.class)
                      .hasArg()
                      .withArgName("argname")
                      .create());

try {
    CommandLine cmdLine = cmdLineParser.parse(options, args);

    int value = 0; // initialize to some meaningful default value
    if (cmdLine.hasOption("integer-option")) {
        value = ((Number)cmdLine.getParsedOptionValue("integer-option")).intValue();
    }

    System.out.println(value);
} catch (ParseException e) {
    e.printStackTrace();
}

请记住,如果提供的数字不适合int,则value可能会溢出。

票数 49
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5585634

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档