我正在创建包含少量元素的字符串数组。那时我注意到 我在第一个元素后加了逗号,它仍然可以编译。我以为它不会编译。然后我打印尺寸,上面写着 1
String args [] = {request.getParentMessageID() , };
System.out.println(args.length);
所以
String args [] = {request.getParentMessageID() , }; and String args [] = {request.getParentMessageID()};
两者的行为相同。
有人可以解释一下为什么它们没有什么不同以及为什么它可以编译。
最佳答案
像这样的数组初始化中的
Trailing comma
会被编译器忽略
。通常会添加这些元素,以便稍后向数组添加内容时,只需添加元素即可,无需担心逗号。
所以它是允许的并且是一个有效的语法。
这也列在 JLS - Section#10.6 (Array Initializers)
中:-
A trailing comma may appear after the last expression in an array initializer and is ignored.
关于java - 带逗号和不带逗号的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13264482/