Получает ли метод main инициализированный массив или строки в командной строке вводятся непосредственно в параметр при вводе? - PullRequest
0 голосов
/ 08 ноября 2018

Например, если я хочу напечатать длину массива, я не могу этого сделать:

public class Test{
     public static void main(String [] args){
          System.out.println(worngParam({"first", "second", "ect"}));
     }
     public static int worngParam(String [] strings){
          return strings.length;
     }
}

Это ошибка!

Первые две строки в основном должны быть

String [] strings = {"first", "second", "ect"};
System.out.println(worngParam(strings));

Но даже так я могу это сделать:

System.out.println(args.length);//If of course args is not empty

Мой вопрос: как параметр попадает в метод main?

Хотя любой метод может принимать постоянные переменные, такие как 3, "word", 'a'. Но она не может получить инициализацию массива, подобного этому {1,8} или {"word2", "word3"}

1 Ответ

0 голосов
/ 08 ноября 2018

Предположим, вы запустили свой файл класса Java, как этот

javac Test.java
java -cp . Test firstParam secondParam thirdParam

Тогда в вашем основном методе args будет иметь значение типа

args = new String[]{"firstParam", "secondParam", "thirdParam"};
...