Gibt es einen Grund, warum String.join jetzt nur mit CharSequence-Elementen funktioniert?Java 8 String Join sollte akzeptieren Funktion <E,R>
Es ist ein bisschen schwierig, Elemente verschiedener Sammlungen zu String zu verbinden.
Es wäre Abendessen einfach, dies in der api Unterstützung hinzuzufügen:
public static <E extends Object, R extends CharSequence> String join(final CharSequence delimiter, Iterable<E> elements, Function<E, R> stringExtractor)
und als die gleiche api zu halten:
public static <E extends Object> String join(final CharSequence delimiter, Iterable<CharSequence> elements)
{
return join(delimiter, elements, Function.identity());
}
als die ganzen Zahlen verbinden können wir einfach:
Sie machen dies viel zu kompliziert. Verwenden Sie stattdessen den 'joining()' Kollektor. Vorausgesetzt von 'map (Object :: toString)' (oder einer anderen Zuordnungsfunktion) nach Bedarf. –
Fragen Sie, warum eine solche Methode nicht existiert? Oder ist das eine Art Verbesserungsanforderung für das JDK (weil Stack Overflow dafür nicht geeignet ist)? – Tunaki
@BrianGoetz Collectors.joining ist gut, wenn ich Streams verwenden möchte. Ich habe mehr über den Non-Stream-Ansatz nachgedacht. Aber ok, okay, wenn es entschieden wurde, dass es zu kompliziert war. Vielen Dank für Ihre Antwort. – user1571449