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

在Java中,为什么要编译这个数组声明?,java,Java,我在今天正确编译的Java代码中注意到了这一点: int[] content = {1,2,3,4,5,6,7,8,9,10, 11, 12, 13, 14, 15,}; 在15之后的末尾有一个额外的逗号,所以我很好奇这是否是Java中的一个目标。编译器为什么不在此处引发错误?它将被忽略,如下所示: 数组初始值设定项以逗号分隔的表达式列表形式编写,并用大括号{和}括起来 数组初始值设定项中的最后一个表达式后面可能会出现一个尾随逗号,该逗号将被忽略。 它将根据以下内容被忽略: 数组初始值设定项以

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

int[] content = {1,2,3,4,5,6,7,8,9,10, 11, 12, 13, 14, 15,};
15
之后的末尾有一个额外的逗号,所以我很好奇这是否是Java中的一个目标。编译器为什么不在此处引发错误?

它将被忽略,如下所示:

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

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

它将根据以下内容被忽略:

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

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


根据Java语言规范:

在数组初始值设定项和 被忽略了

推测:通过注释掉任何一行,甚至最后一行,可以很容易地删除多行初始值设定项中的项

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

根据Java语言规范:

在数组初始值设定项和 被忽略了

推测:通过注释掉任何一行,甚至最后一行,可以很容易地删除多行初始值设定项中的项

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

我知道那会很方便,谢谢!!你的猜测是对的。在《Java编程语言》(Arnold Gosling Holmes)一书中,作者特别指出,这对多行初始值设定者来说是一种方便,因此您可以重新排序、添加或删除值,而无需记住在旧的最后一行中添加逗号,或从新的最后一行中删除逗号。我可以看出这是多么方便,谢谢!!你的猜测是对的。在《Java编程语言》(Arnold Gosling Holmes)一书中,作者特别指出,这为多行初始值设定者提供了方便,因此您可以重新排序、添加或删除值,而无需记住在旧的最后一行添加逗号,或从新的最后一行删除逗号;当然,在我看来,这是爪哇的另一个令人憎恶的地方;当然以我的拙见。