首页 > 解决方案 > 如何使用 lambda 执行此 ForEach 操作?

问题描述

我有这个foreach将一些类解析为另一个类:

public static List<MyClassParsed> getMyParsed(List<MyClassResponse> responses) {

    List<MyClassParsed> parses = new ArrayList<>();

    for (MyClassResponse response : responses) {

        var parse = MyClassParsed.builder()
                .id(response.getId())
                .name(response.getName())
                .build();

        parses.add(parse);
    }

    return detalhes;
}

我的意思是,我可以使用类似的东西来做到这一点responses.stream().foreach(...)吗?

标签: javajava-8java-11

解决方案


您正在将列表转换为从该列表的元素派生的对象列表,因此map看起来是一个不错的解决方案。

public static List<MyClassParsed> getMyParsed(List<MyClassResponse> responses) {
    return responses.stream()
                    .map(r -> 
                         MyClassParsed
                             .builder()
                             .id(r.getId())
                             .name(r.getName())
                             .build())
                    .collect(Collectors.toList());
}

推荐阅读