2010-10-03 71 views
6

在數組初始化列表中使用可以結束在C列表中的逗號,項分隔符結束Java數組初始化列表,這是在C程序設計語言第二版由Kernighan的&裏奇提及。用逗號

例如

int c[] = { 1, 2, 3, }; 

這是在方便的時候名單很長,和一個不希望有改變/檢查前行添加項目

long long c[] = { 
        22342342344, 
        4324234234, 
        12312311111, 
        }; 

但是在Java中,我可以觀察到兩種不同的行爲時:
在Eclipse中,結尾,被接受,而maven編譯器插件的某些版本抱怨並拋出編譯錯誤。

但是,我沒有發現任何提及這個奇點的Flanagan的Java書。

初始化項目之後關於結尾逗號的官方規則是什麼?
是否建議使用而不是

+0

你在使用Maven時看到過編譯錯誤嗎?如果是這樣,你使用的編譯器是什麼? – 2010-10-03 14:58:14

+0

這是javac 1.6.0_16 – 2011-07-28 04:47:36

回答

14

規範的第10.6節明確地說,尾隨逗號被允許(並且忽略):最後一個表達式後

尾隨逗號可能出現在數組初始化和被忽略。

Link

2

Sun javac在解析註釋中的尾部逗號時存在一個錯誤。

https://bugs.eclipse.org/bugs/show_bug.cgi?id=284088

+0

這是實際的JDK錯誤報告:http://bugs.java.com/view_bug.do?bug_id=6337964(在Java 7的生命期間修復,並且被反向移植到6) – seanf 2015-07-02 01:18:22