有些东西我不了解数组语法。 例如,我可以这样做:
int[] tab = {1,2,3};
让我们说我有一个方法将数组作为参数,我可以这样做:
myMethod(tab);
但是我不能这样做:
myMethod({1,2,3})
为什么我必须添加额外的" new int []"像这样 :
Method(new int[] {1,2,3})
谢谢
答案 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