Java 数组约定:String[] args vs. String args[]
我目前正在教学生作为导师编程惯例。我告诉他们,他们可以在 Oracle 代码约定中找到大多数约定。
在我的上一个教程中,一个学生问:
public static void main(String args[])
或
public static void main(String[] args)
是按照惯例编写的,或者如果有区别。我以前从未见过第一个版本,所以我非常确定第二个版本是惯例。但我没有这方面的消息来源。
你能给我一个来源(最好来自oracle,就像我上面链接的页面一样),清楚地说明两者中哪一个是惯例吗?
两种表达式的等效性
我知道这两个表达式是等效的:
JLS 7,第292页指出:
An array type is written as the name of an element type followed
by some number of empty pairs of square brackets [].
但也在第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[][];
但这对惯例没有帮助。
所以它们是相同的(不是规格,但这里有一个来源)。它们在一个小例子中产生相同的字节码,所以我非常确定它们在实践中也是相同的。