带括号语法的Java函数定义

时间:2018-05-03 19:53:25

标签: java arrays function

正在寻找2018-05-03 21:50:52.418:INFO:osjshC.ROOT:qtp1300393335-22: org.openqa.selenium.remote.server.WebDriverServlet-49d904ec: Initialising WebDriverServlet 21:50:52.450 INFO - Found handler: org.openqa.selenium.remote.server.commandhandler.BeginSession@31a65f95 21:50:52.454 INFO - /session: Executing POST on /session (handler: BeginSession) 21:50:52.546 INFO - Capabilities are: Capabilities {acceptSslCerts: true, browserName: chrome, javascriptEnabled: true} 21:50:52.548 INFO - Capabilities {acceptSslCerts: true, browserName: chrome, javascriptEnabled: true} matched class org.openqa.selenium.remote.server.ServicedSession$Factory (provider: org.openqa.selenium.chrome.ChromeDriverService) 的来源,我看到了这个功能:

ByteArrayOutputStream

这种语法记录在哪里?我的意思是函数前面的public synchronized byte toByteArray()[] { return Arrays.copyOf(buf, count); } 。这与声明一个常规数组相同,其中括号可以在数组的名称之后或之前,但在这种情况下,括号可以在函数名之后?

[]

Vs的

String[] args;

编辑:2018-05-22

我在这里找到了更多这种疯狂语法的用法:10 things you didn't know about Java

#3是他们提到可以利用上述语法的所有方法的地方

1 个答案:

答案 0 :(得分:28)

JLS Sec 8.4中:

MethodDeclarator:
    Identifier ( [FormalParameterList] ) [Dims]
     

...

     

允许返回数组的方法的声明放置在形式参数列表之后表示数组类型的部分或全部括号对。支持此语法以与早期版本的Java编程语言兼容。强烈建议不要在新代码中使用此语法。