小编gar*_*kaj的帖子

创建Stream后更改Stream的源时Stream的行为

考虑下面的这段代码:

     List<Integer> l=new ArrayList<>();
     l.add(23);l.add(45);l.add(90);

     Stream<Integer> str=l.stream();     // mark A

     l.add(111);
     l=null;

     System.out.println(str.collect(Collectors.toList())); // mark B
Run Code Online (Sandbox Code Playgroud)

输出是:

[23, 45, 90, 111]
Run Code Online (Sandbox Code Playgroud)

我在这里假设,当在标记B处调用终端操作时,将评估标记A的RHS,这意味着已选择了最近的列表(带有元素“ 111”),但问题是为什么我们没有 NullPointerException来到这里。没有得到异常,那么我们也不应该在输出中得到“ 111”。.请帮助。

java java-8 java-stream

0
推荐指数
1
解决办法
68
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1