java8 stream的flatMap如何返回一个新的类?

有一个List<String> fileNames,存放的是附件的名字集合。

要把这个fileNames,转成Enclosure类的List,通过stream操作。

public class Enclosure {
    private int enclosureId;
    private String path;
    private Timestamp uploadTime;
    private String path;
    private String name;
}

我现在的代码

List<Enclosure> list = fileNames.stream().flatMap(i -> {
                Enclosure enclosure = new Enclosure();
                enclosure.setUploadTime(new Timestamp(System.currentTimeMillis()));
                enclosure.setName(i);
                enclosure.setPath("testurl"+ i);
                return enclosure;
            }).collect(Collectors.toList());

有语法错误,不知道应该如何写。求教。

摇曳的蔷薇
浏览 633回答 2
2回答

蛊毒传说

将flatMap换成map即可 List<String> fileNames = new ArrayList<>(); fileNames.add("aaa"); fileNames.add("bbb"); fileNames.add("ccc"); List<Enclosure> list = fileNames.stream().map(i -> { Enclosure enclosure = new Enclosure(); enclosure.setName(i); // enclosure.setUploadTime(new Timestamp(System.currentTimeMillis()));参数错误 enclosure.setPath("testurl" + i); return enclosure; }).collect(Collectors.toList()); for (Enclosure enclosure : list) { System.out.println(enclosure.getName()); }

芜湖不芜

map函数是用来生成新类的。flatMap和map类似,不同的是其每个元素转换得到的是Stream对象,会把子Stream中的元素压缩到父集合中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java