Java中的字符串数组初始化[重复]

问题描述 投票:81回答:5

这个问题在这里已有答案:

如果我声明一个String数组:

String names[] = new String[3];

那么为什么我们不能像上面这样为上面声明的数组赋值:

names = {"Ankit","Bohra","Xyz"};
java arrays string
5个回答
148
投票

您可以在声明期间执行以下操作:

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

如果你想在声明后的某个地方这样做:

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

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

是一个初始化程序,仅在构造或创建新数组对象时使用。它不能用于设置数组。您可以在声明为时使用它:

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

您也可以使用:

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

6
投票

首先,这与String无关,它与数组有关......而且对于数组的声明性初始化也是如此。

正如大家在几乎每个答案中所讨论的那样,您可以在声明变量时使用:

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

但是,如果要分配Array的实例,请在post声明:

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

AFAIK,声明语法只是一种语法糖,在为变量赋值时不再适用,因为在赋值时需要正确创建实例。

但是,如果你问我们为什么会这样呢?嗯...祝你好运得到答案。除非来自Java委员会的人回答了这个问题,否则就会有明确的文档引用上述语法糖。


3
投票

你的意思是:

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

但是,只有在声明它时才能在同一语句中执行此操作


2
投票

它不是一个有效的Java语法。你可以做

names = new String[] {"Ankit","Bohra","Xyz"};
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.