这些方法之间是否存在功能差异?
public static void main(String[] args) { }
public static void main(String args[]) { }
Run Code Online (Sandbox Code Playgroud)
编辑(从其他贡献者添加此语法):
public static void main(String... args) { }
Run Code Online (Sandbox Code Playgroud)
sta*_*lue 13
不,但首先是首选的风格.
编辑: 另一种选择是
public static void main(String... args)
Run Code Online (Sandbox Code Playgroud)
这还允许调用者使用varargs语法.
Sea*_*oyd 10
符号
String args[]
Run Code Online (Sandbox Code Playgroud)
对C程序员来说只是一个方便,但它与这个表示法相同:
String[] args
Run Code Online (Sandbox Code Playgroud)
以下是Sun Java教程所说的内容:
您还可以在数组名称后面放置方括号:
float anArrayOfFloats[]; // this form is discouraged
但是,公约不鼓励这种形式; 括号标识数组类型,并应显示类型名称.
参考: Java教程>数组
BTW,一个鲜为人知的事实是主要方法也支持varargs,所以这也没关系:
public static void main(String ... args) { }
Run Code Online (Sandbox Code Playgroud)
原因是varargs方法在内部与支持指定类型的单个数组参数的方法相同.这样就不会编译:
public static void main(final String... parameters){}
public static void main(final String[] parameters){}
// compiler error: Duplicate method main(String[])
Run Code Online (Sandbox Code Playgroud)
参考: Java教程>任意数量的参数
其他答案是正确的,因为它没有任何区别.我再补充两点:
String ... args
现在也有效,在这种情况下再次没有区别.
当您定义多个变量时,放置括号的不同选项会产生影响.在下面的示例中,变量a
不是String数组,而是b
一个并且c
是字符串数组的数组.
String a, b[], c[][];
但是,我必须建议不要将此样式用于您的代码,因为它很快就会变得非常混乱.例如,String [] b, c[];
对于b
和c
以上都意味着相同,但特别是对于c
这是不明显的.
归档时间: |
|
查看次数: |
16601 次 |
最近记录: |