我似乎只能在C#中找到如何做到这一点,而不是Java。
我有一个List<TypeX>
,但我知道该列表中的每个元素实际上都是TypeX
的一个子类,称为TypeY
。
如何编写接受List<TypeX>
并返回List<TypeY>
的Lambda表达式
发布于 2016-03-26 01:53:32
在Java中,投影是使用map
方法完成的:
List<TypeY> res = listTypeX
.stream()
.map((x) -> (TypeY)x)
.collect(Collectors.toList());
发布于 2016-03-26 01:53:22
所有的map
都有一个转换元素的lambda:
List<TypeX> list = ...;
List<TypeY> castList =
list.stream().map(x -> (TypeY)x).collect(Collectors.toList());
发布于 2016-03-26 05:01:30
您可以从Eclipse Collections使用selectInstancesOf()
MutableList<TypeX> xList = Lists.mutable.empty();
MutableList<TypeY> yList = xList.selectInstancesOf(TypeY.class);
如果不能从List
更改xList
List<TypeX> xList = Lists.mutable.empty();
List<TypeY> yList = ListAdapter.adapt(xList).selectInstancesOf(TypeY.class);
注意:我是Eclipse Collections的贡献者。
https://stackoverflow.com/questions/36225105
复制相似问题