首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java方法签名后出现奇怪的"[]“

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

Stack Overflow用户
提问于 2011-01-15 19:29:48
回答 3查看 7.4K关注 0票数 124

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

代码语言:javascript
复制
public class Sample {
  public int get()[] {
    return new int[]{1, 2, 3};
  }
}

我认为它不能编译,并想修复我认为是拼写错误的地方,但后来我记起Java编译器确实接受了它!

有人能帮我理解一下这是什么意思吗?它是一个函数数组吗?

EN

回答 3

Stack Overflow用户

发布于 2011-01-15 19:33:06

这是个有趣的问题。在java中,你可以说int[] a;,也可以说int a[];

从这个角度来看,为了得到相同的结果,只需要移动[]

并编写public int[] get() {

看起来代码还是来自于一个混淆器。

票数 22
EN

Stack Overflow用户

发布于 2011-01-15 19:38:45

由于有一个C标记,我将指出在C和C++中也可以使用类似的(但不相同的)表示法:

在这里,函数f返回一个指向10个整型数组的指针。

代码语言:javascript
复制
int tab[10];

int (*f())[10]
{
    return &tab;
}

Java根本不需要星号和括号。

票数 12
EN

Stack Overflow用户

发布于 2011-01-15 19:34:32

java的语法允许执行以下操作:

代码语言:javascript
复制
int[] intArr = new int[0];

而且还

代码语言:javascript
复制
int intArr[] = new int[0];

这看起来更像是来自c风格的语法。

因此,对于函数,名称可以在[]之前或之后,并且类型仍然是int[]

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4699309

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档