Java 8 Stream从返回值添加新对象到列表
发布时间:2020-12-15 04:47:48 所属栏目:Java 来源:网络整理
导读:我想保存方法的返回值,并使用它来创建一个新的对象,添加到列表中.以下是更清晰的代码块: final ListFooBoo fooboos = new ArrayList();for (Foo foo : foos) { OptionalBoo boo = generateBoo(foo); if (boo.isPresent()) { fooboos.add(new FooBoo(foo,boo
我想保存方法的返回值,并使用它来创建一个新的对象,添加到列表中.以下是更清晰的代码块:
final List<FooBoo> fooboos = new ArrayList<>(); for (Foo foo : foos) { Optional<Boo> boo = generateBoo(foo); if (boo.isPresent()) { fooboos.add(new FooBoo(foo,boo.get())); } } 我尝试过这样的事情: fooboos = foos .stream() .map(f -> generateBoo(f)) .filter(Optional::isPresent) .map(Optional::get) .collect(Collectors.toList()); 但显然我在这里遗漏了一些实际上正在创建FooBoo对象的东西.我如何使用java流方法完成这项工作? 解决方法fooboos = foos .stream() .map(foo -> generateBoo(foo).map(boo -> new FooBoo(foo,boo)) .filter(Optional::isPresent) .map(Optional::get) .collect(Collectors.toList()); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |