Я не вижу стандартного способа проверки, все ли опции предоставлены во входных данных String [] для
CLI-библиотека apache. То есть - все мои параметры REUIRED в командной строке, в противном случае, я хочу, чтобы исключение выдать.
Я пробую следующее как обходной путь, но получаю исключение 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) Есть ли способ просто убедиться, что во всех опциях указана строка []? Например, я хотел бы позвонить:
if(! options.isAllProvided())
throw new ParseException("You are missing some options ! " + StringUtils.join(userInputArray,','));