This question already has answers here:
Initializing array with values - should I explicitly instance the class or not?
(3个答案)
在11个月前关闭。
我想了解两种写数组类型之间是否存在区别。
我尝试在此处进行检查,但未发现任何类似的问题。
之间有什么区别?
和
(3个答案)
在11个月前关闭。
我想了解两种写数组类型之间是否存在区别。
我尝试在此处进行检查,但未发现任何类似的问题。
之间有什么区别?
String[] arr = new String[]{"ab","axc"};
和
String[] arr2 ={"ab","axc"};
最佳答案
没有区别String[] arr2 = { "ab", "axc" }
只是syntactic sugar。
根据Java Language Specification § 10.6:
数组初始值设定项可以在字段声明(第8.3节,第9.3节)或局部变量声明(第14.4节)中指定,也可以在数组创建表达式(第15.10.1节)中指定,以创建数组并提供一些初始值。
仅在字段声明或局部变量声明中可以省略new String[]
:
每个变量初始化器都必须与数组的组件类型兼容(第5.2节),否则会发生编译时错误。
例子:
// This works:
String[] array = { "abc", "def" };
// This does not:
String[] array2;
array2 = { "abc", "def" };