En Java, ¿hay alguna forma de tener un constructor que acepte una matriz o una colección? He estado jugando con esto por un tiempo, pero no creo que sea posible.Java: ¿Un constructor o método que aceptará una matriz o conjunto o lista o ...?
Me gustaría ser capaz de inicializar MyClass
, así:
MyClass c = new MyClass({"rat", "Dog", "Cat"});
Y como esto:
LinkedList <String> l = new <String> LinkedList();
l.add("dog");
l.add("cat");
l.add("rat");
MyClass c = new MyClass(l);
Esto es lo que MyClass se parece. ¿Qué puedo hacer XXX para que esto funcione? Sé que podría sobrecargar el constructor, pero si puedo minimizar el código, sería increíble ¿no?
public class MyClass{
private LinkedHashSet <String> myList;
public MyClass(XXX <String> input){
myList = new LinkedHashSet <String>();
for(String s : input){
myList.put(s);
}
}
}
Nice one. Tal vez lo haga al revés, ya que obtener un 'String []' de una 'List' es menos costoso que construir 'List ' basado en 'String []'. –
BalusC
BalusC - estás equivocado. Arrays.asList (..) devuelve una vista de la misma matriz como una lista inmutable. Casi sin costo Por otro lado, ir a String [] requiere copiar todas las referencias a una nueva matriz asignada – user44242
@usersmarvin: ¡Gracias por el aviso! Por cierto, para notificar a los usuarios sobre comentarios en preguntas/respuestas que no son las suyas, pon una '@' delante del alias, p. '@ BalusC'. Se requiere un mínimo de 3 primeros caracteres en el nombre para encontrar una coincidencia. – BalusC