【发布时间】:2016-02-01 14:04:06
【问题描述】:
我有一个长字段类(原始类型):
class Transfer {
private long id;
//gets sets
}
我想从Collection<Transfer> 获得一个List<Long>,它将包含来自Collection<Transfer> 的所有ID,例如
Collection<Transfer> transfers = ..;
List<Long> ids = (List<Long>) transfers.stream().map(f -> f.getId()).collect(Collectors.toList());
让我困惑的是这个丑陋的演员阵容:
(List<Long>) transfers.stream()
有什么办法可以避免吗?
【问题讨论】:
-
你不需要投射它。将在没有其他信息的情况下推断列表的类型。您也可以在 map 方法中使用方法引用来使代码更清晰:
.map(Tranfer::getId)
标签: java generics java-stream