Java “和”之间有什么区别吗;对象[]x“;及;对象x[]”;?
我正在用Java更新一个遗留代码库,发现一行代码如下:Java “和”之间有什么区别吗;对象[]x“;及;对象x[]”;?,java,arrays,declaration,Java,Arrays,Declaration,我正在用Java更新一个遗留代码库,发现一行代码如下: Object arg[] = { new Integer(20), new Integer(22) }; 这句话引起了我的注意,因为我已经习惯了这种代码: Object[] arg = { new Integer(20), new Integer(22) }; 数组的内容在这里并不重要。我很好奇变量名旁边的括号和类名旁边的括号。我在Eclipse(Java5)中进行了尝试,这两行代码对编译器都是有效的 这些声明之间有什么区别吗 没有区别
Object arg[] = { new Integer(20), new Integer(22) };
这句话引起了我的注意,因为我已经习惯了这种代码:
Object[] arg = { new Integer(20), new Integer(22) };
数组的内容在这里并不重要。我很好奇变量名旁边的括号和类名旁边的括号。我在Eclipse(Java5)中进行了尝试,这两行代码对编译器都是有效的
这些声明之间有什么区别吗 没有区别。两者都是合法的 您可以阅读Java语言规范 []可以作为类型的一部分出现 在宣言开始时, 或者作为 特定变量,或两者,如 这个例子:
byte[] rowvector, colvector, matrix[];
两者都是合法的,而且都有效。但建议将[]放在数组名称之前 发件人: 也可以将方括号放在数组名称之后: 然而,传统不鼓励这种形式;括号用于标识阵列类型,并应与类型名称一起出现
不,他们都工作。但请注意:
float anArrayOfFloats[], aSecondVariable;
将声明一个浮点数数组和一个浮点数,同时:
float[] anArrayOfFloats, aSecondVariable;
将声明两个浮点数组。简短回答:否。编写
Integer[]ints
而不是Integer ints[]
的另一个好理由是继承关系:Integer[]
是Number[]
的子类型,是对象[]
的子类型
换句话说,您可以将
整数
放入对象
数组中,这样您就可以将[]
视为对象类型定义的一部分——这就是为什么让它靠近类型而不是对象名是有意义的。矩阵1特别有害。)将[]与类型放在一起更加清晰;尝试将“[]”读作“数组”-int[]读作“int数组”,而int-variableName[]则是在事后加上了“数组”部分。
float[] anArrayOfFloats, aSecondVariable;