Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java语法数组{1,2,3}与新int[]{1,2,3}_Java_Arrays_Integer - Fatal编程技术网

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

Java语法数组{1,2,3}与新int[]{1,2,3},java,arrays,integer,Java,Arrays,Integer,数组语法有点我不懂。例如,我可以这样做: int[]tab={1,2,3} 假设我有一个将数组作为参数的方法,我可以这样做: myMethod(选项卡) 但为什么我不能这样做: myMethod({1,2,3}) 为什么我必须添加一个额外的“new int[]”,如下所示: Method(新的int[]{1,2,3})这个Java语言设计决策的一个可能解释是数组初始化已经包含数组类型 例如: int[] myArray = {1, 2, 3}; 这是明确的。但是,如果在表达式中创建了新数组,则

数组语法有点我不懂。例如,我可以这样做:

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

假设我有一个将数组作为参数的方法,我可以这样做:
myMethod(选项卡)

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

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

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

例如:

int[] myArray = {1, 2, 3};
这是明确的。但是,如果在表达式中创建了新数组,则并不总是清楚要使用哪种类型,例如

myMethod({1, 2, 3})
可能意味着

myMethod(new int[] {1, 2, 3})

甚至

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


关于本教程的更多信息:

询问Java的创建者;这就是数组的语法。因为java需要您准确地告诉它值的类型。。1,2,3也可以是float,double,等等…我认为c语言也是一样的,我认为一定有很好的原因,不幸的是我不知道是哪个原因is@Surely:我认为默认情况下,5、6、7等数字是int。如果您想要其他数据类型,则必须强制转换或更具体(例如,如果需要浮点而不是int-defalut类型,则为6f)
myMethod(new Number[] {1, 2, 3})
myMethod(new Object[] {1, 2, 3})