Java — jcommander, как принять массив слов после флажка?

Итак мне нужно чтобы после того как я поставил флажок допустим -q в массив или строку записывались все слова после флажка и до следующего, я пробовал это реализовать многими способами но никак не получилось.

public class Main {

    @Parameter(names = {"--title", "-t"})
    String title;

    @Parameter(names = {"--query", "-q"})
    ArrayList<String> stringArrayList;

    public static void main(String[] args) throws Exception {

        Main main = new Main();

        JCommander.newBuilder()
                .addObject(main)
                .build()
                .parse(args);

        main.ArgsChecker();

    }

    public void ArgsChecker() {

        System.out.printf("%s \n", title);

        for (String i : stringArrayList) {
            System.out.println(i);
        }

    }

}
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день
Обратите внимание на этот раздел документации
https://jcommander.org/#_variable_arities
program -foo a1 a2 a3
и вы можете прочитать в List<String>
@Parameter(names = "-foo", variableArity = true)
public List<String> foo = new ArrayList<>();


В вашем случае это будет так:

@Parameter(names = {"--query", "-q"}, , variableArity = true)
    List<String> stringArrayList;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы