Как объявить переменное количество аргументов метода?
Для передачи в метод переменного количества аргументов, применяют массив, в котором будет храниться нужное количество переменных.
В 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».
Peer-to-peer собеседования
Обучающая платформа AndroidSprint
Практика собеседований с менторами и другими студентами. Реальные вопросы по Kotlin, Android и Backend
- Живые собеседования: практикуйте интервью с менторами и коллегами-студентами
- Реальные вопросы: база вопросов по Kotlin, Android, Backend и QA
- Фидбек: обратная связь после каждого собеседования — знаете, что улучшить