遍历List的元素-Java 8

时间:2018-09-28 11:15:50

标签: java-8 java-stream

我有一个字符串列表,我需要遍历元素并为列表中的每个元素创建一个新的Object并将其添加到父列表中,Java 8中的ido如何做,这是我到目前为止尝试过的:

List<CustomObject> parentList = new ArrayList<>();
List<String> emailList = fromSomeMethod();
emailList().stream().forEach(email -> parentList.add(new CustomObject(email)));

我遇到错误:

“ lambda表达式中使用的变量应该是最终的或实际上是最终的”

有什么建议吗?不想以传统的方式去做, 谢谢,

3 个答案:

答案 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);
}