这个问题在这里已有答案:
如果我声明一个String
数组:
String names[] = new String[3];
那么为什么我们不能像上面这样为上面声明的数组赋值:
names = {"Ankit","Bohra","Xyz"};
您可以在声明期间执行以下操作:
String names[] = {"Ankit","Bohra","Xyz"};
如果你想在声明后的某个地方这样做:
String names[];
names = new String[] {"Ankit","Bohra","Xyz"};
names[] = {"Ankit","Bohra","Xyz"};
是一个初始化程序,仅在构造或创建新数组对象时使用。它不能用于设置数组。您可以在声明为时使用它:
String[] names= {"Ankit","Bohra","Xyz"};
您也可以使用:
names=new String[] {"Ankit","Bohra","Xyz"};
首先,这与String
无关,它与数组有关......而且对于数组的声明性初始化也是如此。
正如大家在几乎每个答案中所讨论的那样,您可以在声明变量时使用:
String names[] = {"x","y","z"};
但是,如果要分配Array的实例,请在post声明:
names = new String[] {"a","b","c"};
AFAIK,声明语法只是一种语法糖,在为变量赋值时不再适用,因为在赋值时需要正确创建实例。
但是,如果你问我们为什么会这样呢?嗯...祝你好运得到答案。除非来自Java委员会的人回答了这个问题,否则就会有明确的文档引用上述语法糖。
你的意思是:
String names[] = {"Ankit","Bohra","Xyz"};
但是,只有在声明它时才能在同一语句中执行此操作
它不是一个有效的Java语法。你可以做
names = new String[] {"Ankit","Bohra","Xyz"};