В моем коде Java я часто использую очень удобные method(Class... args) varargs. Насколько я знаю, они позволяют передавать любое количество объектов Class или массив Class[]. Поскольку я также часто использую классы Java-классов, я разочарован отсутствием совместимости между ними. В результате я заканчиваю тем, что делаю collection.toArray(), но имеет некоторые проблемы с безопасностью.
Итак, теперь для вопроса: почему Java не разрешает экземпляры Iterable<T> в качестве аргументов vararg, если общий тип соответствует типу T... vararg? Не все ли все время используют списки, наборы и т.д.? Есть ли простой и безопасный тип обеспечения преобразования из коллекции в vararg?