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})