在Java中,为什么这个数组声明会编译?

时间:2015-11-16 19:17:23

标签: java

我今天在正确编译的Java代码中注意到了这一点:

int[] content = {1,2,3,4,5,6,7,8,9,10, 11, 12, 13, 14, 15,};

15之后还有一个额外的逗号 - 所以我很好奇这是否是Java中的预期内容。为什么编译器不会在这里引发错误?

2 个答案:

答案 0 :(得分:3)

从Java语言规范section 10.6: Array initializers

  

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

推测:通过注释掉任何一行,即使是最后一行,也可以轻松删除多行初始化程序中的项目。

String[] NAMES = new String[] {
    "Shaggy",
    "Scooby",
    "Fred",
    "Velma",
    "Daphne",
//  "Scrappy Doo" 
}

答案 1 :(得分:2)

根据this section of the language specification忽略它:

  

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

     

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