Раньше я хотел такого поведения, и никогда не сталкивался с таким способом с помощью уже предоставленного метода. Это не значит, что его не существует. Отчасти неудачный способ - добавить код самостоятельно, например:
private void checkSuitableValue(CommandLine line) {
if(line.hasOption("a")) {
String value = line.getOptionValue("a");
if("foo".equals(value)) {
println("OK");
} else if("bar".equals(value)) {
println("OK");
} else {
println(value + "is not a valid value for -a");
System.exit(1);
}
}
}
Очевидно, что есть более хорошие способы сделать это, чем длинный if / else, возможно, с enum
, но это должно быть все, что вам нужно. Также я не скомпилировал это, но я считаю, что это должно работать.
Этот пример также не делает переключатель "-a" обязательным, так как это не было указано в вопросе.