gpt4 book ai didi

java - 将 POJO 列表转换为 Java Stream 中其他 POJO 列表

转载 作者:行者123 更新时间:2023-12-02 01:28:02 26 4
gpt4 key购买 nike

我有 2 个 POJO Foo 和 FooDBObj,我从数据库获取 FooDBObj 列表,现在我需要创建 Foo 对象列表。我需要将 FooDBObj 中的 Id 和 name 分别设置为 Foo 的 BarIdBarName 。如果是Java Stream就更好了

我尝试从下面的代码中单独获取 Id 列表。

List<String> fooIds =FooDBObjList.stream().map(FooDBObj::getId).collect(Collectors.toList());

上面的代码只能给我 Foo 的 Id 列表,我需要在 Foo.BarIdFooDBObj.name 中设置所有 FooDBObj.id FooDBObj.BarName

中设置

最佳答案

我想你可以直接编写映射逻辑:

Stream<Foo> = fooDBObjList.stream()
.map(db -> {
Foo foo = new Foo();
foo.setBarId(db.Id);
foo.setBarName(db.name);

return foo;
});

如果 Foo 已经有一个适当的构造函数(或像 Foo.from(FooDbObj) 这样的工厂方法,则可以通过方法引用来完成:

Stream<Foo> = fooDbObjList.stream().map(Foo::from); // Factory method
….map(Foo::new) // if Foo(FooDbObj) constructor
….map(db -> new Foo(db.Id, db.name)) // if Foo(barId, barName) constructor

关于java - 将 POJO 列表转换为 Java Stream 中其他 POJO 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56559031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com