我正在阅读State of the Lambda: Libraries Edition,并且对一个声明感到惊讶:
在Streams部分下,有以下内容:
List<Shape> blue = shapes.stream()
.filter(s -> s.getColor() == BLUE)
.collect(Collectors.toList());
该文件没有说明shapes
实际情况,我也不知道它是否重要。
让我感到困惑的是:List
这段代码返回了什么样的具体内容?
- 它将变量分配给 a
List<Shape>
,这完全没问题。 stream()
也不filter()
决定使用什么样的列表。Collectors.toList()
两者都没有指定List
.
那么,这里使用的是什么具体类型(子类)List
?有什么保证吗?