Java中的string数组初始化
如果我声明一个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"};
是一个初始化程序, 仅在构build或创build新的数组对象时使用。 它不能用来设置数组。 声明如下时可以使用它:
String[] names= {"Ankit","Bohra","Xyz"};
您也可以使用:
names=new String[] {"Ankit","Bohra","Xyz"};
首先,这与String
没有任何关系,它是关于数组的,也是关于数组的声明性初始化。
正如大家在几乎所有的答案中所讨论的,你可以在声明一个variables时使用:
String names[] = {"x","y","z"};
但是,在声明后,如果你想分配一个数组的实例:
names = new String[] {"a","b","c"};
AFAIK, 声明语法只是一个语法糖 ,当赋值给variables时不再适用,因为赋值时需要正确创build一个实例。
但是,如果你问我们为什么这样呢? 那么…祝你好运得到答案。 除非来自Java委员会的人回答,否则有明确的文件援引上述语法糖 。
你的意思是:
String names[] = {"Ankit","Bohra","Xyz"};
但是你只能在声明时用相同的语句来做这件事
这不是一个有效的Java语法。 你可以做
names = new String[] {"Ankit","Bohra","Xyz"};