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

Ant*_*arf 5 java arrays integer

我对数组语法有些不理解。例如我可以这样做:

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

假设我有一个接受数组作为参数的方法,我可以这样做: myMethod(tab);

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

为什么我必须添加一个额外的“new int[]”,如下所示: Method(new int[] {1,2,3})

Ale*_*rov 3

这种 Java 语言设计决策的一种可能解释是数组初始化已经包含数组类型

例如:

int[] myArray = {1, 2, 3};
Run Code Online (Sandbox Code Playgroud)

是明确的。但是,如果在表达式中创建新数组,则并不总是清楚要使用哪种类型,例如

myMethod({1, 2, 3})
Run Code Online (Sandbox Code Playgroud)

可能意味着

myMethod(new int[] {1, 2, 3})
Run Code Online (Sandbox Code Playgroud)

或者

myMethod(new Integer[] {1, 2, 3})
Run Code Online (Sandbox Code Playgroud)

或者

myMethod(new Number[] {1, 2, 3})
Run Code Online (Sandbox Code Playgroud)

甚至

myMethod(new Object[] {1, 2, 3})
Run Code Online (Sandbox Code Playgroud)