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