这是朋友问的。奇怪的是,这个 java 代码可以正确编译和运行。
int getArray() [] { ... }
我在这里错过了什么吗。难道不应该
int[] getArray() { ... }
编辑: getArray() 是这里的一个函数,它返回一个整数数组。
这是朋友问的。奇怪的是,这个 java 代码可以正确编译和运行。
int getArray() [] { ... }
我在这里错过了什么吗。难道不应该
int[] getArray() { ... }
编辑: getArray() 是这里的一个函数,它返回一个整数数组。
为了与旧版本的 Java SE 平台兼容,允许返回数组的方法声明将(部分或全部)空括号对放置在形参列表之后,这些空括号对构成数组类型的声明。以下过时的产品支持这一点,但不应在新代码中使用。
虽然我偶尔会在名称 (ick) 之后看到带有数组说明符的变量声明,但我从未见过它用于这样的方法声明。奇怪的。
根据 Java 语言规范的第10.2节,声明数组的两种语法在 Java 中是等效的:
int[] array;
int array[];
根据 JSL 的第8.4节,方法的返回类型也是如此,正如 Jon Skeet 的回答中所引用的那样。
int[] getArray() { ... }
int getArray()[] { ... }
我在 Java 的 WTF 功能中看到了这一点:https ://stackoverflow.com/a/1998146/1247298
当你第一次知道它时,很奇怪。:)