JLS 17关于确定数组类型的说明如下:
方法的返回类型(第8.4.5节)可以是数组类型.的精确 数组类型取决于可能作为 在方法声明的开头或方法的后面输入类型 正式参数列表,或两者兼而有之.数组类型表示为:
- 结果中出现的元素类型;然后,
- any bracket pairs that follow the formal parameter list;然后,
- 任何支架对 出现在结果中.
形式参数与方法的结果类型有什么关系?感谢任何例子.
JLS 17关于确定数组类型的说明如下:
方法的返回类型(第8.4.5节)可以是数组类型.的精确 数组类型取决于可能作为 在方法声明的开头或方法的后面输入类型 正式参数列表,或两者兼而有之.数组类型表示为:
- 结果中出现的元素类型;然后,
- any bracket pairs that follow the formal parameter list;然后,
- 任何支架对 出现在结果中.
形式参数与方法的结果类型有什么关系?感谢任何例子.
该部分正在谈论这种有效但extremely very very much NOT recommended种风格:
public int[] aMethodThatReturnsAnArrayOfIntArrays() [] {
return new int[10][20];
}
请注意,数组括号after、方法名称和"形式参数列表"(即()
--即参数列表;这个特定示例具有零个参数).
这与:
public int[][] aMethodThatReturnsAnArrayOfIntArrays() {
return new int[10][20];
}
您始终可以将)
和{
之间出现的任何数组括号移动到返回类型的结尾-这与方法的作用或含义没有任何区别.
这反映了您如何通过变量声明实现这一特技:
int[][] x = new int[10][20];
for (int y[] : x) { .. }
int[] x[] = new int[10][20], y = new int[30];
...这些表格是不推荐的also种.
为什么合法?因为它是用C语言写的,而Java主要从那里复制其有效语法.