微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 lambda 执行此 ForEach?

如何解决如何使用 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(...) 之类的东西吗?

解决方法

您正在将列表转换为从该列表的元素派生的对象列表,因此 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());
}
,

您可以使用不同的 lambda 功能将您的列表转换为另一个列表:

一行:

1. call the executable bin/java instead of test.exe
2. soft link the JDK lib folder

方法参考:

List<MyClassParsed> parses = responses.stream().map(response -> MyClassParsed.builder().id(response.getId()).name(response.getName()).build()).collect(Collectors.toList());

函数实例:

public class Mapper {
    static MyClassParsed map(MyClassResponse response) {
       return MyClassParsed.builder().id(response.getId()).name(response.getName()).build();
    }
    public void getMyParsed(List<MyClassResponse> responses) {
        List<MyClassParsed> parses = responses.stream().map(Mapper::map).collect(Collectors.toList());
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。