我经常看到像这样初始化的数组:
String[] array = new String[] { "foo","bar","baz" };
但是阅读Language Basics – Arrays表明,简短的语法不需要明确地实例化构造函数:
Alternatively,you can use the shortcut Syntax to create and
initialize an array:06001
所以,假设这两种初始化方法:
String[] array = new String[] { "foo","baz" }; String[] array2 = { "foo","baz" };
这些之间有什么区别吗?两者似乎都是一样的,在这种情况下,我应该假设第二个隐含地调用新的String [],而第一个只是一个更冗长的方式,或者在幕后呢?
从Java开始,所以抱歉,如果这太愚蠢的一个问题,但我没有找到任何关于这个在网络上.
解决方法
这两种方法是等效的.但是请注意,简洁的语法只能用于变量声明.外部变量声明必须使用详细的语法:
String[] array; array = new String[] { "foo","baz" }; // OK String[] array2; array2 = { "foo","baz" }; // ERROR
有关进一步讨论,请参见this answer.