Was ich suche ist eine generische Version von Object[] java.util.Collection.toArray()
oder eine weniger ausführliche Alternative zur Verwendung von T[] java.util.Collection.toArray(T[] array)
. Ich kann zur Zeit schreiben:Gibt es eine generische Version von toArray() in Guava oder Apache Commons Collections?
Collection<String> strings;
String[] array = strings.toArray(new String[strings.size()]);
Was ich suche ist so etwas wie:
@SuppressWarnings("unchecked")
public static <T> T[] toArray(Collection<T> collection, Class<T> clazz) {
return collection.toArray((T[]) Array.newInstance(clazz, collection.size()));
}
, die ich dann als verwenden:
String[] array = Util.toArray(strings, String.class);
So etwas wie dies umgesetzt ist in Guava oder in Commons Sammlungen?
Natürlich kann ich meine eigenen (die oben genannten) schreiben, die so schnell zu Array (T [] Array) scheint.
Also im Grunde sind Sie einfach nicht in der 'array' Parameter zu setzen haben wollen, aber Sie sind glücklich, einen Klassennamen für eine statische Methode zu setzen und ein Klassenliteral stattdessen? – chrylis
Die Tatsache, dass Sie eine Anzahl von Zeichen, die der Länge von 'strings.size() 'entsprechen, reduzieren möchten, würde bedeuten, dass Sie diese Konvertierung ziemlich viel durchführen. Also ist die Antwort, mach es weniger. –
Sie machen sich Sorgen, weil 8 weitere Charaktere viel sind? –