什么是正确的Java main()方法参数语法?

时间:2010-11-03 17:04:06

标签: java syntax

这些方法之间是否存在功能差异?

public static void main(String[] args) { }

public static void main(String args[]) { }

EDIT(从其他贡献者那里添加了这种语法):

public static void main(String... args) { }

8 个答案:

答案 0 :(得分:13)

不,但第一种是首选款式。

修改 另一种选择是

public static void main(String... args)

另外允许调用者使用varargs语法。

答案 1 :(得分:10)

不同的数组符号

符号

String args[]

对C程序员来说只是一种便利,但它与这种表示法相同:

String[] args

以下是Sun Java教程所说的内容:

  

您也可以放置方括号   在数组名称之后:

     

float anArrayOfFloats[]; // this form is discouraged

     

但是,会议不鼓励这样做   形成;括号标识数组   类型,应该与类型一起出现   指定。

参考: Java Tutorial > Arrays

VARARGS

BTW,一个鲜为人知的事实是主要方法也支持varargs,所以这也没关系:

public static void main(String ... args) { }

原因是varargs方法在内部与支持指定类型的单个数组参数的方法相同。例如。这不会编译:

public static void main(final String... parameters){}
public static void main(final String[] parameters){}
// compiler error: Duplicate method main(String[])

参考: Java Tutorial > Arbitrary Number of Arguments

答案 2 :(得分:7)

没有区别,但第一个是符合标准的。

答案 3 :(得分:7)

其他答案是正确的,因为它没有任何区别。我再补充两点:

String ... args现在也有效,在这种情况下再没有区别。

当您定义多个变量时,放置括号的不同选项会产生影响。在以下示例中,变量a不是String数组,但b是1,c是字符串数组的数组。

String a, b[], c[][];

但是,我必须建议不要将此样式用于您的代码,因为它很快就会变得非常混乱。例如,String [] b, c[];表示上述bc的相同内容,但对于c尤其如此,这是不明显的。

答案 4 :(得分:6)

不,他们没有区别。虽然......我过去常常使用第二种方式,直到我的女朋友威胁要打破,如果我继续这样做(不是开玩笑)。所以现在我更喜欢第一种方式,我觉得它看起来好多了。

答案 5 :(得分:4)

不,以上是相同的。 Java中的数组可以用以下两种方式之一声明:

String[] myarray;

String myarray[];

答案 6 :(得分:2)

使用String []而不是使用[] postfix来引用。 Infact String [] obj; hilights事实上obj是String []类型的引用(String数组)。

答案 7 :(得分:2)

我还希望将args标记为final

public static void main(final String[] args) { }