Zur Zeit haben wir folgende Stream.concat
in Java 8:Fehlt Java 8 ein Stream.concat, das an einem Varar von Streams arbeitet?
public static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b);
Ich bin überrascht, warum gibt es keine Version eine varargs von Stream<? extends T>
zu nehmen?
Zur Zeit habe ich Code geschrieben wie:
Stream<Integer> resultStream = Stream.concat(stream1, Stream.concat(stream2, Stream.of(element)))
.filter(x -> x != 0)
.filter(x -> x != 1)
.filter(x -> x != 2);
Wenn ein varargs dieser Signatur verfügbar waren:
Stream<Integer> resultStream = Stream.concat(
stream1,
stream2,
Stream.of(element)
)
.filter(x -> x != 0)
.filter(x -> x != 1)
.filter(x -> x != 2);
:
public static <T> Stream<T> concat(Stream<? extends T>... streams);
Dann habe ich es viel deutlicher als schreiben konnte
Ohne alle verschachtelten Stream.concat
Anrufe.
Oder gibt es andere Gründe, warum es nicht zur Verfügung gestellt wird?
Ich kann mir solche Gründe nicht vorstellen, da wir jetzt sowieso den Job eines Varargs Calls machen.
Sie könnten durch diesen Thread gehen wollen -> http://mail.openjdk.java.net/pipermail/lambda-dev/2013-July/010647.html –