问题 Apache Commons CLI:替换已弃用的OptionBuilder?


IntelliJ显示在此示例代码中不推荐使用OptionBuilder http://commons.apache.org/proper/commons-cli/usage.html

我应该用什么作为替代品?

import org.apache.commons.cli.*;

Options options = new Options();
options.addOption(OptionBuilder.withLongOpt( "block-size" )
       .withDescription( "use SIZE-byte blocks" )
       .hasArg()
       .withArgName("SIZE")
       .create());

5588
2018-01-28 00:15


起源



答案:


http://commons.apache.org/proper/commons-cli/javadocs/api-release/index.html

已过时。从1.3开始,使用Option.builder(String)代替

这是替代品:

Options options = new Options();
Option option = Option.builder("a")
    .longOpt( "block-size" )
    .desc( "use SIZE-byte blocks"  )
    .hasArg()
    .argName( "SIZE" )
    .build();
options.addOption( option );

13
2018-01-28 00:42



注意:如果你通过groovy遇到麻烦,可能是因为你使用的是java 7.当我使用带有commons-cli-1.4.jar的java 7运行时我会得到 signature of method: static org.apache.commons.cli.Option.builder() is applicable for argument types - Sridhar-Sarnobat


答案:


http://commons.apache.org/proper/commons-cli/javadocs/api-release/index.html

已过时。从1.3开始,使用Option.builder(String)代替

这是替代品:

Options options = new Options();
Option option = Option.builder("a")
    .longOpt( "block-size" )
    .desc( "use SIZE-byte blocks"  )
    .hasArg()
    .argName( "SIZE" )
    .build();
options.addOption( option );

13
2018-01-28 00:42



注意:如果你通过groovy遇到麻烦,可能是因为你使用的是java 7.当我使用带有commons-cli-1.4.jar的java 7运行时我会得到 signature of method: static org.apache.commons.cli.Option.builder() is applicable for argument types - Sridhar-Sarnobat


使用(内部)类 Option.Builder 如在

Option option = Option.builder("a")
 .required(true)
 .longOpt("arg-name")
 .build();

参看 Option.Builder Java-Doc。即静电 builder() 的方法 Option 返回一个 Option.Builder 以及对...的追踪调用 build() 给你一个 Option


2
2018-01-28 00:39