tengo algunos pb. ¡Quiero echar una lista para Collection en javalanzar una lista a una colección
Collection<T> collection = new Collection<T>(mylList);
pero tengo este error
No se puede crear una instancia de la Colección tipo
tengo algunos pb. ¡Quiero echar una lista para Collection en javalanzar una lista a una colección
Collection<T> collection = new Collection<T>(mylList);
pero tengo este error
No se puede crear una instancia de la Colección tipo
List<T>
ya implementa Collection<T>
- ¿Por qué necesitaría para crear uno nuevo?
Collection<T> collection = myList;
El mensaje de error es absolutamente correcto: no se puede crear una instancia directa de una interfaz. Si desea crear una copia de la lista existente, podría utilizar algo como:
Collection<T> collection = new ArrayList<T>(myList);
Cuando lo hago Colección
@Mercer ¿cuál es la firma del método que está llamando?Una lista debería funcionar en setMyCollection (colección de colecciones), pero no si es, p. setMyCollection (Map collection) :) Y si está setMyCollection (List collection), entonces debes poner algo en el que se declare una Lista: List collection = new ArrayList(); (eliminados genéricos para acortarlo) – extraneon
Fundición nunca necesita un new
:
Collection<T> collection = myList;
Incluso no hacen la conversión explícita, porque Collection
es un super-tipo de List
, por lo que funcionará así.
cuando hago esto, tengo un error No coinciden los tipos: No se puede convertir la lista
@Mercer: ¿estás hablando de 'java.util.List' aquí? ¿Podría darnos algún contexto (por ejemplo, cómo se define '
@Mercer: proporcione un ejemplo corto pero * completo * a continuación. –
Al no conocer su código, es un poco difícil responder a su pregunta, pero en base a toda la información aquí, creo que el problema es que está tratando de usar Collections.sort en un objeto definido como Colección y ordenar no es compatible con eso.
Primera pregunta. ¿Por qué el cliente se define de manera genérica? ¿Por qué no es una Lista, Mapa, Conjunto o algo un poco más específico?
Si el cliente se definió como Lista, Mapa o Conjunto, no tendría este problema, ya que entonces podría usar directamente Collections.sort (cliente).
HTH
No tienen múltiples solusions para convertir la lista a una colección
Solución 1
List<Contact> CONTACTS = new ArrayList<String>();
// fill CONTACTS
Collection<Contact> c = CONTACTS;
Solución 2
private static final Collection<String> c = new ArrayList<String>(
Arrays.asList("a", "b", "c"));
Solución 3
private static final Collection<Contact> = new ArrayList<Contact>(
Arrays.asList(new Contact("text1", "name1")
new Contact("text2", "name2")));
Solución 4
List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);
I consejos a leer un libro sobre la base de Java. La colección es una interfaz, no una clase. Comprender los diferentes objetivos de ambos es importante. – extraneon
@extraneon +1 Estaba a punto de sugerir lo mismo. Usar colecciones sin una comprensión adecuada de los conceptos básicos no es una buena idea. – helpermethod