2

我正在创建带有少量元素的字符串数组。当时我注意到我在第一个元素之后放了逗号,它仍然可以编译。我以为它不会编译。然后我打印尺寸,它说 1

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

所以

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

两者的行为相同。

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

4

2 回答 2

5

Trailing comma在这样的数组初始化中ignored by compiler。这些通常是添加的,以便稍后在数组中添加一些东西,只需要添加元素而不用担心逗号。

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

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

于 2012-11-07T06:47:57.577 回答
3

根据Java 语言规范 10.6

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

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

我希望你现在清楚了。

于 2012-11-07T06:46:41.230 回答