Java 方法签名后出现奇怪的“[]”

2022-08-31 08:42:12

我今天看了一些Java代码,我发现了一些奇怪的语法:

public class Sample {
  public int get()[] {
    return new int[]{1, 2, 3};
  }
}

我以为无法编译,并想修复我认为是拼写错误的内容,但后来我想起Java编译器确实接受了它!

有人可以帮我理解它的意思吗?它是一系列功能吗?


答案 1

这是一个返回 .int[]

Java 语言规范(8.4 方法声明)

为了与旧版本的 Java 平台兼容,允许返回数组的方法的声明表单将构成数组类型声明的空括号对放在参数列表之后(部分或全部)。

这得到了过时生产的支持:

方法声明器
方法声明器 [ ]

但不应用于新代码。


答案 2

这是一个有趣的问题。在java中,你可以说,以及.
从这个角度来看,为了得到相同的结果,只需要移动
并写入.
看起来代码仍然来自混淆器...int[] a;int a[];[]public int[] get() {