我正在进行Java语法测试,我观察到了
String[] sA = new String[1]{"aaa"};
语法无效,而:
String[] sA = new String[]{"aaa"};
是有效的语法。
为什么会这样? Aren的两个声明是否相同?
答案 0 :(得分:5)
因为在提供数组初始化程序时无法定义维表达式。
这意味着您可以指定维度或数组初始值设定项(即值)。您不能同时指定两者。
你的第二次初始化是正确的。
答案 1 :(得分:4)
第一种语法无效,因为您要声明数组的大小两次:
两次做同样的事情会引入潜在的错误,所以java设计师决定只允许第二种方法。
答案 2 :(得分:3)
声明一个数组变量,创建一个数组,并将该数组的引用赋值给变量可以在一个语句中组合,如下所示:
dataType[] arrayRefVar = new dataType[arraySize];
或者,您可以按如下方式创建数组:
dataType[] arrayRefVar = {value0, value1, ..., valuek};
正如其他人提到的那样,当提供数组初始值设定项时,你无法定义维度表达式。"即你不能做这样的事情:
String[] sA = new String[1]{"aaa"};
此外,在声明变量时,请使用:
String names[] = {"x","y","z"};
但是,如果要分配数组的实例,则发布声明:
names = new String[] {"a","b","c"};
声明语法只是一个语法糖,在为变量赋值时不再适用,因为在赋值时需要正确创建实例。