目前我們已經在Java中8以下Stream.concat
:Java 8是否缺少一個Stream.concat工作在流的varag上?
public static <T> Stream<T> concat(Stream<? extends T> a, Stream<? extends T> b);
我很奇怪,爲什麼沒有版本服用Stream<? extends T>
一個可變參數?
目前我已經寫的代碼,如:
Stream<Integer> resultStream = Stream.concat(stream1, Stream.concat(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);
然後,我可以更清楚地寫爲:
Stream<Integer> resultStream = Stream.concat(
stream1,
stream2,
Stream.of(element)
)
.filter(x -> x != 0)
.filter(x -> x != 1)
.filter(x -> x != 2);
沒有任何嵌套的Stream.concat
調用。
或者還有其他原因爲什麼沒有提供?
我想不出這樣的理由,因爲我們現在終於做了可變參數調用的工作。
你可能想通過這個話題 - > http://mail.openjdk.java.net/pipermail/lambda-dev/2013-July/010647.html –