【问题标题】:Picocli: How can one handle no arguments and options scenarioPicocli:如何处理没有参数和选项的场景
【发布时间】:2019-04-04 10:09:53
【问题描述】:

我正在使用 picocli java 命令行库来实现命令行应用程序。但是我想知道 picocli 是否提供了一个功能,可以帮助处理命令行不接收任何参数或选项的情况(默认情况下)。

谢谢

【问题讨论】:

    标签: java picocli


    【解决方案1】:

    我不确定这是否能回答您的问题,但当然可以创建一个没有选项或位置参数的基于 picocli 的命令:

    @Command(name = "demo", description = "no options or positional parameters")
    public class Demo implements Runnable {
    
        @Override
        void run() {
            System.out.println("Hello");
        }
    
        public static void main(String[] args) {
            CommandLine.run(new Demo(), args);
        }
    }
    

    或者您的问题是如何为选项提供默认值?如果是这样的话,你能看看用户手册的Default Values部分,让我们知道有什么不清楚的地方吗?

    【讨论】:

    • 我可能没有很好地提出我的问题。但是我要问的是,picocli 是否具有允许检查 args 是否为空或者我们必须自己做的功能。
    • 您是否有兴趣查找是否完全指定了选项,或者查找是否在没有选项参数的情况下指定了选项?
    • 我说的是怎么处理args == null
    • @bbcmicro 从 picocli 4.3 开始,一个简单的方法是让Thingynot 实现RunnableCallable。见required subcommands。这符合您的要求吗?
    • @bbcmicro 如果子命令在不带参数的情况下也需要显示用法,一种想法是在子命令中使用@Spec annotation,并调用spec.commandLine().getParseResult()来获取ParseResult,然后调用parseResult.expandedArgs() 获取用户指定参数的列表。如果列表为空,则打印使用情况。您可以将其放在Mixin 中,以减少子命令中的代码重复。 (请随时提出 picocli GitHub 票以讨论更多细节。)
    猜你喜欢
    • 2021-04-01
    • 2014-05-07
    • 2015-03-30
    • 2020-10-04
    • 1970-01-01
    • 2012-02-28
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多