提问人:AntonBoarf 提问时间:5/11/2018 最后编辑:CohensiusAntonBoarf 更新时间:1/25/2021 访问量:8611
Java 语法数组 {1,2,3} 与 new int[] {1,2,3} [duplicate]
Java syntax array {1,2,3} vs new int[] {1,2,3} [duplicate]
问:
数组语法有些我不明白。例如,我可以这样做:
int[] tab = {1,2,3};
假设我有一个将数组作为参数的方法,我可以这样做:myMethod(tab);
但是为什么我不能这样做:myMethod({1,2,3})
为什么我必须添加一个额外的“new int[]”,如下所示:Method(new int[] {1,2,3})
答:
3赞
Alex Shesterov
5/11/2018
#1
对这种 Java 语言设计决策的一种可能的解释是,数组初始化已经包含数组类型。
例如:
int[] myArray = {1, 2, 3};
是明确的。但是,如果在表达式中创建了新数组,则并不总是清楚使用哪种类型,例如
myMethod({1, 2, 3})
可能意味着
myMethod(new int[] {1, 2, 3})
或
myMethod(new Integer[] {1, 2, 3})
或
myMethod(new Number[] {1, 2, 3})
甚至
myMethod(new Object[] {1, 2, 3})
1赞
code_fish
5/11/2018
#2
语法 {1,2,3}(前面没有 new int[])只能用作数组初始值设定项表达式。在所有其他上下文(包括方法调用)中,需要使用 new 运算符。
有关本教程的更多信息:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html
评论