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"};