我有一个字符串列表,我需要遍历元素并为列表中的每个元素创建一个新的Object并将其添加到父列表中,Java 8中的ido如何做,这是我到目前为止尝试过的:>
List<CustomObject> parentList = new ArrayList<>();
List<String> emailList = fromSomeMethod();
emailList().stream().forEach(email -> parentList.add(new CustomObject(email)));
我遇到错误:
“ lambda表达式中使用的变量应该是最终的或实际上是最终的”
有什么建议吗?不想以传统的方式去做, 谢谢,
答案 0 :(得分:1)
List<CustomObject> parentList = emailList().stream()
.map(CustomObject::new)
.collect(Collectors.toList());
无需复杂的事情,只需map
并收集到新的List
答案 1 :(得分:0)
尝试这样,您应该具有参数化构造函数
null
答案 2 :(得分:0)
使用此:
static class CustomObject {
String email;
public CustomObject(String email) {
this.email = email;
}
}
private static void test4() {
List<CustomObject> parentList = new ArrayList<>();
List<String> emailList = Arrays.asList("aa@gmail.com", "bb@yahoo.com");
emailList.stream()
.map(CustomObject::new)
.forEach(parentList::add);
}