Я пытаюсь использовать следующий импорт:
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.Options;
Для разбора параметров командной строки. До сих пор у нас была опция с аргументами:
Option report = OptionBuilder
.withLongOpt(ArgNames.REPORT.toString().toLowerCase()).hasArgs().create();
Теперь я хотел бы, чтобы программа использовалась также без аргументов, то есть я мог бы использовать:
--report 5
--report "ABC"
--report
Последнее использование без аргументов. Поэтому я изменил hasArgs
на hasOptionalArgs
:
Option report = OptionBuilder
.withLongOpt(ArgNames.REPORT.toString().toLowerCase()).hasOptionalArgs().create());
Но по какой-то причине, когда я печатаю (при использовании --report
без аргументов):
System.out.println(report.hasArgs());
System.out.println(report.getArgs());
Вывод:
true
-2
Почему это правда, если я не использовал никаких аргументов (--report
)?