Обнаружил, что при декларации массивов не обязательно соблюдать классический синтаксис и компилятор разрешает ставить запятую после последнего элемента.
Версия JVM, на которой тестировал :
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode,sharing)
Например:
public class Test {
public static void main(String[] args) {
System.out.println("Test1 :");
test1();
System.out.println("Test2 :") test2();
}
static void test2() {
for (String str : new String[] {"one", "two", "margic",} {
System.out.print("{");
System.out.print(str + " ");
System.out.println("}");
}
}
static void test1() {
String[][] result = {{"one"}, {"two"}, {"magic here ->"},};
for (String[] a : result) {
System.out.print("{");
}
for (String str : a) {
System.out.print(str + " ");
}
System.out.println("}");
}
}
Вывод:
Test1 :
{one }
{two }
{magic here -> }
Test2 :
{one }
{two }
{margic }



февраля 6, 2010 в 11:43 am
А что говорит стандарт?
Если ничего, то это явный баг синтаксического разбора
Можешь смело оповещать Sun о найденном баге.
февраля 6, 2010 в 2:34 pm
В .NET С# это стандарт. Как для массивов, так и для enum'ов. Причина, если не ошибаюсь, - упростить работу инструментов, генерирующих код. Что бы заморачиваться с проверками на последний элемент в коллекции.
В JavaScript это тоже стандарт, но в IE его не реализовали. В результате самый короткий код для определение IE выглядит так: if(-[1,] {alert("Not IE!");
http://habrahabr.ru/blogs/javascript/80333/
февраля 6, 2010 в 10:17 pm
Виталик, а Sun уже и нету
Думаю unix прав, фича удобная для генераторов, да и копипастить легче в случае чего 
февраля 8, 2010 в 11:33 am
Дима, читай - "Sun". Самих служащих вроде как не разогнали. Хотя может сильно ошибаюсь - как-то судьба Java волнует слабо
А вот то что в стандартах уже заботятся о машинах, а не людях для меня новость. Спасибо за информацию.
В интересное время живем, ничего не скажешь.
февраля 10, 2010 в 1:47 pm
Насчет Sun да, Oracle расшаркалась перед сообществом, что отмеценирует в их проекты больше злых, но ценных бумажек больше чем сами солнцевские.
В слову, судьба у Java пока много радужней чем у С++0х (так и тянет вместо ++ вписать букву Д).
февраля 12, 2010 в 12:23 am
Детство это все ?
Обычно такими мелкими багами интересуются все нормальные ПЕРВЫЕ курсы.
февраля 12, 2010 в 12:37 am
в РНР это тоже стандарт
февраля 12, 2010 в 10:23 pm
Larin Igor, ну надо же когда-то дорасти до уровня нормального первого курса.... и вот случилось! %)
февраля 12, 2010 в 11:37 pm
"ну надо же когда-то дорасти до уровня нормального первого курса.... "
просто более старшие курсы (чем первый) понимают,
что время - это их самый ценный жизненный ресурс и не тратят его на обсуждение таких мелочей.
Обычно профессиональные программисты выставляют на общественное обсуждение что то существенное, например:
«….я открыл дыру в системе безопасности J2EE и разработал рекомендации как эту дыру прикрыть..»
февраля 13, 2010 в 1:38 pm
все верно, только существенное занимает существенно больше времени. А поскольку на блоге тишина и профессиональные программисты не спешат открывать дыры в системе безопасности jee довольствуясь старыми, решил, что будет уместно сделать свежий пост постратив 10 мин своего времени наткнувшись на сабжевую фичу. Чем могу, как говориться…
февраля 13, 2010 в 1:41 pm
с другой стороны, комментарии показывают, что есть тенденция к совершенно иному использованию существующих платформ, чем канонические варианты использования, под которые эти платформы разрабатывались.