Java语法数组{1,2,3} vs new int [] {1,2,3}

时间:2018-05-11 13:54:21

标签: java arrays int

有些东西我不了解数组语法。 例如,我可以这样做:

int[] tab = {1,2,3};

让我们说我有一个方法将数组作为参数,我可以这样做: myMethod(tab);

但是我不能这样做: myMethod({1,2,3})

为什么我必须添加额外的" new int []"像这样 : Method(new int[] {1,2,3})

谢谢

2 个答案:

答案 0 :(得分:2)

这种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 :(得分:1)

语法{1,2,3}(前面没有新的int [])只能用作数组初始化表达式。在所有其他上下文(包括方法调用)中,您需要使用new运算符。

有关本教程的更多信息:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html