Код: Выделить всё
@Command
public class ExperimentCommand {
@Command(command = "experiment", description = "Loads a bunch of files from a folder")
@SuppressWarnings("java:S107")
public String experiment(
@Option(longNames = "path", description = "Path of the directory with the files to be processed", required = true, arity = OptionArity.EXACTLY_ONE) String path,
@Option(longNames = "async", description = "Use async requests on HTTP level", arity = OptionArity.ZERO, defaultValue = "false") boolean async) {
return """
path %s
async %s"""
.formatted(path, async);
}
}
именованный аргумент
Код: Выделить всё
java .. experiment --path ABC
< path ABC
< async false
безымянный аргумент
Код: Выделить всё
java .. experiment ABC
< path ABC
< async false
безымянный аргумент с дополнительной логической опцией
Код: Выделить всё
java .. experiment --async ABC
< Too many arguments for option 'async', requires at most '0'
< Illegal option value 'ABC', reason 'Failed to convert from type [java.lang.String] to type [boolean] for value [ABC]'
< Missing mandatory option '--path', Path of the directory with the files to be processed
именованный аргумент с дополнительной логической опцией
следовательно, здесь я ожидаю ошибку «невозможно преобразовать --path в логическое значение», но этот работает. Почему?:
Код: Выделить всё
java .. experiment --async --path ABC
< path ABC
< async true
Подробнее здесь: https://stackoverflow.com/questions/791 ... hell-works
Мобильная версия