我正在阅读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?有什么保证吗?