Определение функции Java с помощью синтаксиса скобок
Смотрел в источнике ByteArrayOutputStream
, и я видел эту функцию:
public synchronized byte toByteArray()[] {
return Arrays.copyOf(buf, count);
}
Где этот синтаксис документирован? Я имею в виду []
перед функцией. Это то же самое, что и в объявлении регулярного массива, где скобка может идти после имени массива или раньше, но в этом случае скобка может идти после имени функции?
String[] args;
Vs
String args[];
Изменение: 2018-05-22
Я нашел еще больше использования этого сумасшедшего синтаксиса: 10 вещей, которые вы не знали о Java
# 3, где они упоминают все способы использования вышеупомянутого синтаксиса
Ответы
Ответ 1
В JLS Sec 8.4:
MethodDeclarator:
Identifier ( [FormalParameterList] ) [Dims]
...
Объявление метода, возвращающего массив, позволяет помещать некоторые или все пары скобок, которые обозначают тип массива после формального списка параметров. Этот синтаксис поддерживается для совместимости с ранними версиями языка программирования Java. Настоятельно рекомендуется, чтобы этот синтаксис не использовался в новом коде.