区分String args[]和String[] args的区别

6
我看到了两种不同的声明字符串数组的方式,但我不明白它们之间的区别。有人能解释一下 String args[]String[] args 之间的区别吗?
String[] args 

10
没有区别。 - vallentin
4
前者得到支持是为了取悦曾经的C语言程序员。 - jpvee
关于第一种形式,这里说“惯例不鼓励使用此形式”。 - harold
这个问题和被接受的答案有更多相关信息。 - Pieter
5个回答

9

在Java中两者没有区别,它们完全是相同的。从JLS §10.2可以看到:

方括号[]可能出现在声明的开始部分作为类型的一部分,也可能出现在特定变量的声明中作为声明符的一部分,或者二者都有。


2

它们没有区别,但我更喜欢在类型后面使用括号 - 这样更容易看出变量的类型是数组,也更易读。

但是,开发人员选择哪种方法取决于他个人,他更习惯使用哪种方法。请参见 @T.J. Crowder 的答案,该答案引用了官方文档。


1
我更喜欢遵循Java编码规范,因为它们是标准的,可以避免讨论各种替代方案,例如空格与制表符等。 - Peter Lawrey

1
唯一的区别在于,如果您声明一个变量并添加更多字段。
String args[], array[];  // array is String[]

String[] args, array[];  // array is String[][]

然而,如果你指的是主方法,我更喜欢使用...

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

或者,如果忽略了参数。
public static void main(String... ignored) {

String...String[]类似,但可以使用可变参数而不是数组。例如:

MyClass.main("Hello", "World");

顺便说一下,我不喜欢在变量后面加上[]作为类型的一个很好的例子是String[]而不是String .... ??

这个实际上可以编译通过。

public int method(String args[])[] {

这与以下内容相同:

public int[] method(String[] args) {

但我认为后者更好。

0

String args[]String[] args没有区别,两种方式是相同的。


0

它们之间没有区别。它们都是数组的声明。对于Java编译器来说,它们是相同的。只需声明一个数组变量即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接