带逗号但没有逗号的数组

时间:2012-11-07 06:44:46

标签: java arrays

我正在创建包含少量元素的String数组。那时我注意到了 我在第一个元素之后放了逗号,它仍然是编译的。我以为它不会编译。然后我打印尺寸,它说1

  String args [] = {request.getParentMessageID() , };
  System.out.println(args.length);

所以

String args [] = {request.getParentMessageID() , };  and String args [] = {request.getParentMessageID()};

两者表现相同。

有人可以解释为什么这些没有什么不同以及为什么要编译。

2 个答案:

答案 0 :(得分:5)

数组初始化中的

Trailing commaignored by compiler。通常会添加这些内容,以便稍后在向数组中添加内容时,只需添加元素而不必担心逗号。

所以它是允许的并且是有效的语法。 这也列在JLS - Section#10.6 (Array Initializers)中: -

  

尾随逗号可能出现在数组中的最后一个表达式之后   初始化并被忽略。

答案 1 :(得分:3)

根据Java Language Specification 10.6

数组初始值设定项是以逗号分隔的表达式列表编写的,用大括号{和}括起来。

尾随逗号可能出现在数组初始值设定项中的最后一个表达式之后,将被忽略。

我希望你现在清楚。