0

在使用 Java 8 Stream时,我有时会发现Stream没有我想要的特定方法(例如takeWhile()dropWhile()skipLast())。如何在不重写整个 Java 8 Stream架构的情况下创建自己的具有附加方法的流类?

我知道StreamEx库并且知道它有takeWhile()dropWhile()。在撰写本文时,它没有skipLast(). 我已经为此方法提交了一个问题。

一个可接受的解决方案是展示如何扩展 Java 8 StreamStreamEx

4

1 回答 1

4

自 0.5.4 版以来,StreamEx库有一个chain()方法。这允许创建可以舒适地插入的辅助方法。

public static <T> UnaryOperator<StreamEx<T>> skipLast(int n)
{
   return(stream -> skipLast(stream, n));
}

private static StreamEx<T> skipLast(Stream<T> input, int n)
{
   // implement the real logic of skipLast
}

有了以上内容,现在可以写...

StreamEx.
   of(input).
   chain(skipLast(10)).
   forEach(System.out::println);
于 2016-01-28T04:02:48.417 回答