栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java-将对象列表映射到具有其属性属性值的列表

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java-将对象列表映射到具有其属性属性值的列表

编辑:此答案基于以下想法:您需要对代码中其他位置的不同实体和不同属性执行类似的操作。如果您 只需
要按ID将ViewValues列表转换为Longs列表,则请坚持使用原始代码。但是,如果您想要更可重用的解决方案,请继续阅读…

我会为投影声明一个接口,例如

public interface Function<Arg,Result>{    public Result apply(Arg arg);}

然后,您可以编写一个通用转换方法:

public <Source, Result> List<Result> convertAll(List<Source> source,    Function<Source, Result> projection){    ArrayList<Result> results = new ArrayList<Result>();    for (Source element : source)    {         results.add(projection.apply(element));    }    return results;}

然后您可以定义简单的投影,如下所示:

private static final Function<ViewValue, Long> ID_PROJECTION =    new Function<ViewValue, Long>()    {        public Long apply(ViewValue x)        { return x.getId();        }    };

并像这样应用它:

List<Long> ids = convertAll(values, ID_PROJECTION);

(显然,使用K&R支撑和更长的行会使投影声明更短:)

坦率地说,所有这些对于lambda表达式都会更好,但是没关系…



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/427947.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号