Использование String в конфигурациях run в качестве аргумента и использование его в операторе if - PullRequest
0 голосов
/ 02 декабря 2011

Код ниже работает до тех пор, пока аргумент в конфигурации запуска равен "-output".Но когда аргументы пусты, компилятор выдает и ArrayOutOfBoundsException.

Точка этого куска кода в конечном итоге будет;- Выполните действие, когда в аргументах конфигурации запуска написано -output. - Выполните что-нибудь еще, если аргументы пусты или отличаются от -output

. Я обнаружил много проблем, которые выглядели так, как эта.Но я долго работал над решениями, поэтому начал новый пост.Помощь очень ценится.

...
public static void main(String[] args) {
        Version_5 v5 = new Version_5("Test");
        {
            if(args[0].equals("-output")){
                System.out.println("It works");
            }
        }
    }
...

Ответы [ 2 ]

1 голос
/ 02 декабря 2011

Как видите, String args[] - это массив определенного размера. Если вы не передаете аргумент, размер равен нулю. Прежде чем проверить, что находится на args[0], проверьте, имеет ли args размер с args.length.

if (args.length>0){
   //do something
}
else if (args[0].equals("-output")){
   System.out.println("It works");
}
1 голос
/ 02 декабря 2011

Вам нужно сначала проверить, есть ли у вас аргументы, вот и все.

if ((args.length > 0) && (args[0].equals("-output")) {
    ...

Вы также можете рассмотреть возможность использования библиотеки разбора аргументов, которых несколько.

Что такоедополнительные скобки для?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...