Convenção de matriz de Java: String [] args vs. String args []
Atualmente, estou ensinando alunos como convenções de programação de tutores. Eu disse a eles que eles podem encontrar a maioria das convençõesas convenções do código Oracle.
No meu último tutorial, um aluno perguntou se:
public static void main(String args[])
ou
public static void main(String[] args)
é escrito por convenção ou se houver diferença. Eu nunca vi a primeira versão antes, então tenho certeza de que a segunda é uma convenção. Mas eu não tenho uma fonte para isso.
Você pode me dar uma fonte (de preferência do oracle, como a página que eu relacionei acima) que deixa claro qual dos dois é a convenção?
Equivalência de ambas as expressõesEu sei que ambas as expressões são equivalentes:
oJLS 7p. 292 afirma:
An array type is written as the name of an element type followed
by some number of empty pairs of square brackets [].
mas também na p. 293:
The [] may appear as part of the type at the beginning of the declaration,
or as part of the declarator for a particular variable, or both.
For example:
byte[] rowvector, colvector, matrix[];
This declaration is equivalent to:
byte rowvector[], colvector[], matrix[][];
Mas isso não ajuda na questão da convenção.
Então eles são idênticos (não specs, mas aqui é umfonte). Eles produzem o mesmo bytecode em um pequeno exemplo, então tenho certeza de que eles também são idênticos na práxis.