我正在创建包含少量元素的String数组。那时我注意到了 我在第一个元素之后放了逗号,它仍然是编译的。我以为它不会编译。然后我打印尺寸,它说1
String args [] = {request.getParentMessageID() , };
System.out.println(args.length);
所以
String args [] = {request.getParentMessageID() , }; and String args [] = {request.getParentMessageID()};
两者表现相同。
有人可以解释为什么这些没有什么不同以及为什么要编译。
答案 0 :(得分:5)
Trailing comma
是ignored by compiler
。通常会添加这些内容,以便稍后在向数组中添加内容时,只需添加元素而不必担心逗号。
所以它是允许的并且是有效的语法。
这也列在JLS - Section#10.6 (Array Initializers)
中: -
尾随逗号可能出现在数组中的最后一个表达式之后 初始化并被忽略。
答案 1 :(得分:3)
根据Java Language Specification 10.6
数组初始值设定项是以逗号分隔的表达式列表编写的,用大括号{和}括起来。
尾随逗号可能出现在数组初始值设定项中的最后一个表达式之后,将被忽略。
我希望你现在清楚。