En mi código de Java a menudo uso las muy útiles method(Class... args)
varargs. Por lo que yo sé, le permiten pasar cualquier cantidad de objetos Class
o una matriz de Class[]
. Como también utilizo a menudo las clases de colección de Java, me siento frustrado por la falta de compatibilidad entre ambos. Como resultado, termino haciendo collection.toArray()
, pero eso tiene algunos problemas de seguridad.¿Por qué Java varargs no admite colecciones?
Así que ahora para la pregunta: ¿por qué Java no permite casos de Iterable<T>
como argumentos vararg, siempre que el tipo genérico se ajuste al tipo T...
de la vararg? ¿No todos usan listas, conjuntos, etc. todo el tiempo? ¿Existe una forma sencilla y segura de proporcionar la conversión de colección a vararg?
Responde la pregunta desde un punto de vista técnico, pero como desarrollador, todavía creo que es una tontería proporcionar un método auxiliar siempre que quiera usar tanto colecciones como objetos simples. Por supuesto, el hecho de que tenemos colecciones y varargs ya es un alivio en comparación con hace algunos años. – tb189
@The Elite Gentleman: Prefiero usar 'frobnicate' sobre un simple' foo'. [fuente] (http://www.catb.org/jargon/html/F/frobnicate.html). –
@ tb189: ¿por qué un "método de ayuda"? Desea que un método acepte dos tipos de argumentos diferentes, no relacionados con el tipo de letra. Ese es * exactamente * el problema que la sobrecarga está diseñada para manejar. –