2015-04-22 3 views
1

Мне было интересно, как я могу проверить args.length внутри метода.передать массив через метод (аргументы командной строки java)

Например:

public static void commandLineCheck (int first, int second){ 
    if (args.length==0){ 
     //do something with first and second 
    } 
} 

public static void main(String[] args) { 
    int first = Integer.parseInt(args[0]); 
    int second = Integer.parseInt(args[1]); 
    commandLineCheck(first, second); 
} 

я получаю «не может найти символ: арг» ошибка, когда я делаю это. Прямо сейчас, я думаю, мне нужно передать аргументы [] через метод. Я пробовал это, но потом он дал мне ошибку. Есть ли для этого новичок?

РЕДАКТИРОВАТЬ: Большое вам спасибо за ответы ребята! Это сработало!

ответ

0

Измените код, как это (Вы должны передать параметр массива значение вашего метода проверки)

public static void commandLineCheck (int first, int second, String[] args){ 
    if (args.length==0){ 
     //do something with first and second 
    } 
} 

public static void main(String[] args) { 
    int first = Integer.parseInt(args[0]); 
    int second = Integer.parseInt(args[1]); 
    commandLineCheck(first, second, args); 
} 

И это будет работать. Однако следующий тест (args.length==0) не имеет большого смысла, поскольку вы уже предположили, что args.length больше или равно 2, извлекая из него два значения внутри основного метода. Поэтому, когда вы переходите к вашему методу commandLineCheck, этот тест всегда будет ложным.

0

Вам необходимо пройти String [] args к вашему commandLineCheck методу. Это написано так же, как вы объявляете массив для вашего метода main.

public static void commandLineCheck (String[] args){ 
    if (args.length==0){ 
     //do something with first and second 
    } 
} 

Также вы, вероятно, хотите изменить свой основной метод и метод commandLineCheck немного.

public static void commandLineCheck(String [] args) { 
    /* make sure there are arguments, check that length >= 2*/ 
    if (args.length >= 2){ 
     //do something with first and second 
     int first = Integer.parseInt(args[0]); 
     int second = Integer.parseInt(args[1]); 
    } 
} 

public static void main(String[] args) { 
    commandLineCheck(args); 
} 
Смежные вопросы