Я не вижу стандартного способа проверки, все ли параметры предоставлены во вводе String [] для Библиотека CLI apache. То есть - все мои параметры ОБЯЗАТЕЛЬНЫ в командной строке, в противном случае я хочу, чтобы исключение было сгенерировано.
Я пробую следующее в качестве обходного пути, но получаю исключение Nullpointer в операторе if ...
PosixParser p = new PosixParser();
CommandLine cli=p.parse(options,args);
for(Object o : options.getOptions())
{
Option op = (Option)o;
if(cli.getOptionValue(op.getName()))
throw new ParseException("Missing argument ! " + op.getArgName() + ":"+op.getDescription());
}
ОБНОВЛЕНИЕ: метод getOpt (), похоже, предоставляет краткое имя аргумента.
Однако, если я заменю op.getName () на opt.getLongName () ... это сработает!
В любом случае .. У меня 2 вопроса:
1) Почему опция должна иметь пустое имя, но ненулевое longName?
2) Есть ли способ просто убедиться, что все параметры предоставлены String []? Например, я хотел бы позвонить:
if(! options.isAllProvided())
throw new ParseException("You are missing some options ! " + StringUtils.join(userInputArray,','));