什么是正确的Java main()方法参数语法?
这些方法之间是否存在function差异?
public static void main(String[] args) { } public static void main(String args[]) { }
编辑(从其他贡献者添加此语法):
public static void main(String... args) { }
不,但首先是首选的风格。
编辑:另一种选择是
public static void main(String... args)
另外还允许调用者使用varargs语法。
不同的数组符号
符号
String args[]
对C程序员来说只是一个方便,但它与这个符号相同:
String[] args
以下是Sun Java教程所说的内容:
您还可以在数组名称后面放置方括号:
float anArrayOfFloats[]; // this form is discouraged
但是,公约不鼓励这种forms; 括号标识数组类型,并应显示类型名称。
参考: Java教程>数组
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教程>任意数量的参数
没有区别,但第一个是按标准。
其他答案是正确的,因为它没有任何区别。 我再补充两点:
String ... args
现在也有效,在这种情况下再次没有区别。
当您定义多个变量时,放置括号的不同选项会产生结果。 在以下示例中,变量a
不是String数组,但b
是1, c
是字符串数组的数组。
String a, b[], c[][];
但是,我必须建议不要将此样式用于您的代码,因为它很快就会变得非常混乱。 例如, String [] b, c[];
对于b
和c
与上述相同,但特别是对于c
这是不明显的。
不,他们没有区别。 虽然……我过去常常使用第二种方式,直到我的女朋友威胁要打破,如果我继续这样做(不是开玩笑)。 所以现在我更喜欢第一种方式,我觉得它看起来好多了。
不,以上是相同的。 Java中的数组可以通过以下两种方式之一声明:
String[] myarray;
要么
String myarray[];
使用String []而不是使用[] postfix来引用。 Infact String [] obj; hilights事实上obj是String []类型的引用(String数组)。
我也更愿意将args
标记为final
。
public static void main(final String[] args) { }
两种选择之间没有区别,你可以选择其中一种。
你也可以这样说:
public static void main(String... args) { }