Подтвердить что ты не робот

Инициализация массива строк в Java

Если я объявляю массив String:

String names[] = new String[3];

Тогда почему мы не можем присваивать значения объявленному массиву так:

names[] = {"Ankit","Bohra","Xyz"};
4b9b3361

Ответ 1

Во время объявления вы можете сделать следующее:

String names[] = {"Ankit","Bohra","Xyz"};

И если вы хотите сделать это где-то после объявления:

String names[];
names = new String[] {"Ankit","Bohra","Xyz"};

Ответ 2

names[] = {"Ankit","Bohra","Xyz"};

является инициализатором и используется исключительно при построении или создании нового объекта массива. Его нельзя использовать для установки массива. Вы можете использовать его при объявлении как:

String[] names= {"Ankit","Bohra","Xyz"};

Вы также можете использовать:

names=new String[] {"Ankit","Bohra","Xyz"};

Ответ 3

Во-первых, это не имеет ничего общего с String, это касается массивов.. и это слишком конкретно о декларативной инициализации массивов.

Как обсуждалось всеми почти в каждом ответе здесь, вы можете, объявляя переменную, использовать:

String names[] = {"x","y","z"};

Однако объявление post, если вы хотите назначить экземпляр массива:

names = new String[] {"a","b","c"};

AFAIK, синтаксис объявления - это синтаксический сахар , и он больше не применим при назначении значений для переменных, поскольку при назначении значений вам необходимо создать экземпляр правильно.

Однако, если вы спросите нас, почему это так? Ну... удачи, получив ответ на это. Если кто-либо из комитета Java не ответит на это, или имеется явная документация, ссылающаяся на указанный синтаксический сахар.

Ответ 4

Вы имеете в виду:

String names[] = {"Ankit","Bohra","Xyz"};

Но вы можете сделать это только в том же самом заявлении, когда объявляете его

Ответ 5

Это просто не действительный синтаксис Java. Вы можете сделать

names = new String[] {"Ankit","Bohra","Xyz"};