【发布时间】:2014-03-25 09:47:48
【问题描述】:
我刚开始玩 Java 8 和 Lambda 表达式,我很好奇是否可以通过返回特定值来停止 Lambda 表达式内部的流生成 (如空)。 Stream.generate() 可以做到这一点吗?
private int counter;
private void generate()
{
System.out.println(Stream.generate(() -> {
if (counter < 10) {
counter++;
return RandomUtils.nextInt(100);
} else {
return null;
}
}).count());
}
很遗憾,此代码不会终止,因此仅返回 null 不会退出流。
【问题讨论】: