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主要从那里复制其有效语法.

Java相关问答推荐

将具有多个未知字段的SON映射到Java POJO

Annotation @ Memphier无法正常工作,并表示:class需要一个bean,但找到了2个bean:

try 使用Java 9或更高版本对特殊对象图进行解析时出现NullPointerException

无法在org. openjfx:javafx—fxml:21的下列变体之间进行 Select

我无法将附件发送到NetBeans之外

try 创建一个对象,使用它,然后使用一条语句将其存储为列表

蒙蒂霍尔比赛结果不正确

如何在Java中从XML中获取特定的 node ,然后将其删除?

Helidon 4和Http API

如何使用带有谓词参数的方法,而不使用lambda表达式

使用htmlunit和java单击按钮

与IntArray相比,ArrayList<;Int>;对于大量元素的性能极差

无法将GSON导入到我的JavaFX Maven项目

在Java中将对象&转换为&q;HashMap(&Q)

Java递归泛型是否可以被视为继承和重写的语法糖

字符串的Gzip压缩在java11和java17中给出了不同的结果

Java返回生成器的实现

多线程、并发和睡眠未按预期工作

如何用Micrometer&;斯普肯

放置在变量中的Java成员引用不相等