Это может быть ограничением синтаксиса языка или ошибкой в спецификации того, что создание идентификатора находится перед созданием выражения при разборе синтаксиса вызова метода. Не смешивайте объявление анонимного массива внутри вызова метода.
data.add (new int [] {21, 19629});
и я получаю "ожидаемый идентификатор" и
"незаконное начало типа".
«Ожидаемый идентификатор» в data.add (...), вероятно, вызван тем, что компилятор ожидает идентификатор и находит выражение, которое разрешается в анонимный экземпляр. Есть несколько мест, где этот синтаксис приемлем, но я не уверен, почему data.add () нуждается в идентификаторе.
«Недопустимое начало типа» может заключаться в том, что компилятор считает, что выражение является объявлением анонимного типа, но синтаксис не допускает этого при вызове метода.
Попробуйте создать его с помощью переменной, затем передайте переменную как метод arg.
int[] nums = new int[] {0,1,2};
data.add(nums);
В поисках дополнительных особенностей грамматики ArrayList.add () я нашел этот ответ на похожую проблему кто-то изучал ArrayList. JavaGlossary имеет хороший набор ошибок времени компиляции .