ich habe etwas Pb. Ich möchte eine Liste in Java in Collection aufnehmen
Collection<T> collection = new Collection<T>(mylList);
aber ich habe diesen fehler
Kann die Typensammlung nicht instanziieren
List<T>
implementiert bereits Collection<T>
- warum müssen Sie einen neuen erstellen?
Collection<T> collection = myList;
Die Fehlermeldung ist absolut richtig - Sie können eine Schnittstelle nicht direkt instanziieren. Wenn Sie eine Kopie der vorhandenen Liste erstellen möchten, können Sie Folgendes verwenden:
Collection<T> collection = new ArrayList<T>(myList);
Casting benötigt niemals eine new
:
Collection<T> collection = myList;
Sie machen die Besetzung auch nicht explizit, weil Collection
ein Supertyp von List
ist, also wird es genau so funktionieren.
Es gibt mehrere Lösungen, um die Liste in eine Sammlung umzuwandeln
Lösung 1
List<Contact> CONTACTS = new ArrayList<String>();
// fill CONTACTS
Collection<Contact> c = CONTACTS;
Lösung 2
private static final Collection<String> c = new ArrayList<String>(
Arrays.asList("a", "b", "c"));
Lösung 3
private static final Collection<Contact> = new ArrayList<Contact>(
Arrays.asList(new Contact("text1", "name1")
new Contact("text2", "name2")));
Lösung 4
List<? extends Contact> col = new ArrayList<Contact>(CONTACTS);
First Collection ist eine Klassenschnittstelle und kann nicht instanziiert werden. Erfassungs-API
List Ver APi ist auch eine Schnittstellenklasse.
Es kann so sein
List list = Collections.synchronizedList(new ArrayList(...));
ver Linkbeschreibung hier eingeben
Collection collection= Collections.synchronizedList(new ArrayList(...));
Da Sie Ihren Code nicht kennen, ist es ein bisschen schwierig, Ihre Frage zu beantworten, aber aufgrund der hier enthaltenen Informationen glaube ich, dass das Problem darin besteht, dass Sie Collections.sort in einem als Collection definierten Objekt übergeben und sortieren nicht unterstützt Das.
Erste Frage. Warum ist der Kunde so generisch definiert? Warum handelt es sich nicht um eine Liste, eine Karte, einen Satz oder etwas genaueres?
Wenn der Client als Liste, Karte oder Satz definiert wurde, hätten Sie dieses Problem nicht, da Sie Collections.sort (Client) direkt verwenden können.
HTH