在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java  網(wǎng)絡(luò)安全/ java8 stream的flatMap如何返回一個(gè)新的類?

java8 stream的flatMap如何返回一個(gè)新的類?

有一個(gè)List<String> fileNames,存放的是附件的名字集合。

要把這個(gè)fileNames,轉(zhuǎn)成Enclosure類的List,通過(guò)stream操作。

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

我現(xiàn)在的代碼

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());

有語(yǔ)法錯(cuò)誤,不知道應(yīng)該如何寫。求教。

回答
編輯回答
挽歌

map函數(shù)是用來(lái)生成新類的。flatMap和map類似,不同的是其每個(gè)元素轉(zhuǎn)換得到的是Stream對(duì)象,會(huì)把子Stream中的元素壓縮到父集合中。

2017年5月10日 01:52
編輯回答
淺時(shí)光

將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()));參數(shù)錯(cuò)誤
            enclosure.setPath("testurl" + i);
            return enclosure;
        }).collect(Collectors.toList());
        for (Enclosure enclosure : list)
        {
            System.out.println(enclosure.getName());
        }
2017年5月25日 05:41