首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >java中的奇怪行为

java中的奇怪行为
EN

Stack Overflow用户
提问于 2012-04-09 01:55:32
回答 3查看 125关注 0票数 2

这是一位朋友问的。奇怪的是,这段java代码可以正常编译和运行。

代码语言:javascript
复制
int getArray() [] { ... }

我是不是漏掉了什么。难道不应该是

代码语言:javascript
复制
int[] getArray() { ... }

EDIT: getArray()在这里是一个返回整数数组的函数。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-09 01:58:46

来自section 8.4 of the JLS

为了与Java平台的旧版本兼容,允许在声明返回数组的方法时,将形成数组类型声明的空方括号对(部分或全部)放在正式参数列表之后。这是由以下过时的产品支持的,但不应在新代码中使用。

虽然我偶尔会看到在名称(ick)后带有数组说明符的变量声明,但我从未见过它用于这样的方法声明。真奇怪。

票数 9
EN

Stack Overflow用户

发布于 2012-04-09 01:58:12

声明数组的两种语法在Java语言规范的§10.2小节中是等价的:

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

Jon Skeet的回答引用了Jon Skeet的回答,同样的道理也适用于方法的返回类型,正如JSL的§8.4小节所述。

代码语言:javascript
复制
int[] getArray() { ... }
int getArray()[] { ... }
票数 2
EN

Stack Overflow用户

发布于 2012-04-09 02:04:01

我在java的WTF特性中看到了这一点:https://stackoverflow.com/a/1998146/1247298

当你第一次了解它的时候,你会觉得很奇怪。:)

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

https://stackoverflow.com/questions/10065008

复制
相关文章

相似问题

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