在args4j中,我定义了以下选项:

@Option(name="-host",usage="host to connect")
@Option(name="-port",usage="port of the host")
@Option(name="-idle",usage="idle")

但是,当显示帮助时,args4j始终使用字母顺序,因此它会打印
-host - host to connect
-idle - idle
-port - port to connect

这并不方便,因为我想先显示强制性选项。我也想自己设置选项的顺序,因为某些选项(例如主机和端口)应该一起使用。

如何控制args4j中选项的顺序?

我发现3年前问过同样的问题,但没有回答http://markmail.org/message/xce6vitw6miywtos

最佳答案

您不能使用当前的Args4j(至少据我所知)-但是由于它是开源的,所以我鼓励您自己实现它,并尝试从源代码中获取补丁以获取较新的版本。

从源:org.kohsuke.args4j.CmdLineParser:

    // for display purposes, we like the arguments in argument order, but the options in    alphabetical order
     Collections.sort(options, new Comparator<OptionHandler>() {
        public int compare(OptionHandler o1, OptionHandler o2) {
            return o1.option.toString().compareTo(o2.option.toString());
        }
    });

10-08 05:08