isa*_*sah 1 java java-8 java-stream
我正在将原始映射Stream到a Stream<Integer>,然后将元素收集到a List<Integer>.
为什么我必须将结果投射collect(Collectors.toList())到List<Integer>我的映射器.map(str -> ((String)str).length())- 已映射到Integer?
我的代码:
List list = Arrays.asList("test", "test2");
List<Integer> lengths = (List<Integer>) list.stream()
.map(str -> ((String)str).length())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
如果我不使用raw List,则无需强制转换:
List<String> list = Arrays.asList("test", "test2");
List<Integer> lengths = list.stream()
.map(str -> str.length())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
Era*_*ran 10
召唤list.stream()原始List产品是原料Stream.呼吁map对Stream不更改Stream为通用Stream<Integer>.它将它改为另一个原始Stream.因此,当你打电话时collect(Collectors.toList()),你得到一个原始的List,必须把它投射到(List<Integer>).
结论:不要使用原始类型.
| 归档时间: |
|
| 查看次数: |
810 次 |
| 最近记录: |