Как объявить переменное количество аргументов метода?

Для передачи в метод переменного количества аргументов, применяют массив, в котором будет храниться нужное количество переменных.

В Java 5 появилась конструкция vararg. В этом случае между типом аргумента произвольной длинны и её именем требуется поставить три точки (…), и можно передавать произвольное количество данных, без предварительной упаковки их в передаваемый массив.

Для компилятора оба эти способа эквивалентны, он превращает аргумент vararg в массив. При вызове метода выполняется неявное создание и заполнение массива.

Переменной vararg может быть только последний передаваемый аргумент.

Vararg может не содержать аргументов. Это может вызвать затруднения при вызове перегруженных методов с vararg. Пусть имеется два перегруженных метода с совместимыми аргументами int и float. При вызове этого метода без аргументов vararg будет вызван метод с int, так как используется с самым специфичным типом. При использовании методов с несовместимыми между собой типами, такими как float и Boolean компилятор выдаст сообщение «Ambguous method call».

Если в качестве vararg использовать generic, то появиться предупреждение: «Possible heap polluton from parameterzed vararg type».

Поделиться уроком

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *