java - 带括号语法的 Java 函数定义
问题描述
正在寻找源代码ByteArrayOutputStream
,我看到了这个函数:
public synchronized byte toByteArray()[] {
return Arrays.copyOf(buf, count);
}
此语法记录在哪里?我的意思是[]
在函数前面。这是否与声明一个常规数组相同,其中括号可以放在数组名称之后或之前,但在这种情况下,括号可以放在函数名称之后?
String[] args;
VS
String args[];
编辑:2018-05-22
我在这里发现了这种疯狂语法的更多用途:关于 Java 你不知道的 10 件事
#3 是他们提到可以利用上述语法的所有方式的地方
解决方案
在JLS Sec 8.4中:
MethodDeclarator: Identifier ( [FormalParameterList] ) [Dims]
...
返回数组的方法的声明允许在形式参数列表之后放置部分或全部表示数组类型的括号对。支持此语法是为了与早期版本的 Java 编程语言兼容。强烈建议不要在新代码中使用此语法。
推荐阅读
- python - Pandas:在数据框中创建列并通过查看另一个数据框为该列分配值
- docker - 如何运行打包为具有代码覆盖率的 Linux docker 容器的 Asp.Net Core 应用程序?
- powershell - 在 C 以外的任何内容上设置权限时出现 SET-ACL 问题:在 1 个特定服务器上的驱动器
- c# - C# - 如果出现错误 400,我如何获得 JSON 响应?(HttpRequest)
- flutter - DropdownButton 尝试使用 Flutter 中另一个类的项目重新创建
- node.js - Mongoose 和 NodeJS 中嵌套数组的问题
- javascript - 这个对象如何“看到”它的继承属性?
- gatling - Gatlin 测试针对 IIS 服务器运行,期望集成安全失败并出现 401
- asp.net - 如何在 BP 自动化中使用 SQLDataAdapter 中的更新语句
- java - 使用 Jackson 将 JSON 中一个字段的不同类型的值映射到 java 对象