如果我声明一个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 的实例:
names = new String[] {"a","b","c"};
AFAIK,声明语法只是一种语法糖,在为变量赋值时不再适用,因为在赋值时需要正确创建实例。
但是,如果你问我们为什么会这样?嗯......祝你好运得到答案。除非 Java 委员会的某个人回答了这个问题,或者有明确的文档引用了上述语法糖。
你的意思是:
String names[] = {"Ankit","Bohra","Xyz"};
但是您只能在声明时在同一语句中执行此操作
它只是不是一个有效的 Java 语法。你可以做
names = new String[] {"Ankit","Bohra","Xyz"};