Я заметил, что можно написать такой код, что совершенно нормально, между прочим:
int arrays[] = {1, 2, 3};
for (int n : arrays)
System.out.println(n);
Но я не вижу, как это незаконно:
for (int n : {1, 2, 3})
System.out.println(n);
С точки зрения писателя компилятора это не приводит к какой-либо двусмысленности, не так ли? Ожидается, что тип массива будет того же типа, что и элемент, объявленный ранее. Другими словами, n
объявляется как int
, поэтому массив должен быть int[]