【发布时间】:2016-02-17 23:52:27
【问题描述】:
我今天在正确编译的 Java 代码中注意到了这一点:
int[] content = {1,2,3,4,5,6,7,8,9,10, 11, 12, 13, 14, 15,};
在15 之后的末尾有一个额外的逗号——所以我很好奇这是否是Java 中的预期内容。为什么编译器不会在这里报错?
【问题讨论】:
-
Java 中的另一个可憎之处;当然,在我的拙见中。
标签: java
我今天在正确编译的 Java 代码中注意到了这一点:
int[] content = {1,2,3,4,5,6,7,8,9,10, 11, 12, 13, 14, 15,};
在15 之后的末尾有一个额外的逗号——所以我很好奇这是否是Java 中的预期内容。为什么编译器不会在这里报错?
【问题讨论】:
标签: java
来自 Java 语言规范,section 10.6: Array initializers:
尾随逗号可能出现在数组初始值设定项中的最后一个表达式之后,并且 被忽略。
推测:这使得通过注释掉任何一行(甚至是最后一行)来删除多行初始化程序中的项目变得很容易。
String[] NAMES = new String[] {
"Shaggy",
"Scooby",
"Fred",
"Velma",
"Daphne",
// "Scrappy Doo"
}
【讨论】:
根据this section of the language specification,它被忽略:
数组初始值设定项是用逗号分隔的表达式列表,用大括号 { 和 } 括起来。
尾随逗号可能出现在数组初始化程序中的最后一个表达式之后并被忽略。
【讨论】: