我今天在正确编译的Java代码中注意到了这一点:
int[] content = {1,2,3,4,5,6,7,8,9,10, 11, 12, 13, 14, 15,};
在15
之后还有一个额外的逗号 - 所以我很好奇这是否是Java中的预期内容。为什么编译器不会在这里引发错误?
答案 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忽略它:
数组初始值设定项是以逗号分隔的表达式列表编写的,用大括号{和}括起来。
在数据初始值设定项中的最后一个表达式之后可能会出现一个尾随逗号,但会被忽略。