Это так называемый синтаксис varargs. В теле метода вы можете прочитать параметр members
как массив - фактически, это / просто / просто массив.
Однако магический бит заключается в вызове метода. До введения синтаксиса varargs
метод вызывался бы примерно так:
setMembers(new Members[] {member1, member2, member3});
Однако с новым синтаксисом varargs вам больше не нужно явно создавать массив, и вы можете передать:
setMembers(member1, member2, member3);
Это, однако, означает, что аргумент varargs
должен быть последним аргументом в методе. Поэтому что-то подобное не допускается:
void setMembers(Member ... members, String memberType);
Подводя итог: Это немного синтаксического сахара, правда. Я не эксперт по внутренней работе компилятора Java, но я уверен, что методы, вызывающие метод, который принимает параметр varargs
, перестроены в методы, которые создают массив данного типа.