有没有办法阻止 Stream.generate 从其 Lambda 闭包中恢复?
我刚刚开始玩Java 8和Lambda Expression,我很好奇我是否可以通过返回特定值(如null)来阻止Lambda expession内部的Stream生成。使用 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