目前我有该数组中的对象数组列表,我必须迭代并添加到我的 LatestNewsDTO
列表中,我在下面的代码工作中做了什么,但我仍然不满意我的方式。他们有什么有效的方法吗,请告诉我。
谢谢
List<Object[]> latestNewses = latestNewsService.getTopNRecords(companyId, false, 3);
List<LatestNewsDTO> latestNewsList = new ArrayList();
latestNewses.forEach(objects -> {
LatestNewsDTO latestNews = new LatestNewsDTO();
latestNews.setId(((BigInteger) objects[0]).intValue());
latestNews.setCreatedOn((Date) objects[1]);
latestNews.setHeadLine((String) objects[2]);
latestNews.setContent(((Object) objects[3]).toString());
latestNews.setType((String) objects[4]);
latestNewsList.add(latestNews);
});
最佳答案
使用 Stream
将您的 Object[]
数组映射到 LatestNewsDTO
并将它们收集到 List
中:
List<LatestNewsDTO> latestNewsList =
latestNewses.stream()
.map(objects -> {
LatestNewsDTO latestNews = new LatestNewsDTO();
latestNews.setId(((BigInteger) objects[0]).intValue());
latestNews.setCreatedOn((Date) objects[1]);
latestNews.setHeadLine((String) objects[2]);
latestNews.setContent(((Object) objects[3]).toString());
latestNews.setType((String) objects[4]);
return latestNews;
})
.collect(Collectors.toList());
当然,如果您创建一个接受数组的 LatestNewsDTO
构造函数,代码看起来会更优雅。
List<LatestNewsDTO> latestNewsList =
latestNewses.stream()
.map(objects -> new LatestNewsDTO(objects))
.collect(Collectors.toList());
现在 LatestNewsDTO (Object[] objects)
构造函数可以保存解析数组和设置实例成员的逻辑。
关于java - 如何迭代对象数组列表并设置为java 8中的另一个对象列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35790723/