Bootstrap

Java实现将一个类型的List转成另一种类型的List

一个常见的需求,就是将一种泛型的List转成另一种类型的List,比如:

List<Student> students;
List<Teacher> teachers;

前提是:这俩实体类的字段有重复的地方

字段是这样的:

import lombok.Data;

@Data
public class Student {
    String age;
    String height;
}
import lombok.Data;

@Data
public class Student {
    String age;
    String height;
}

​

此时我们的需求是:将Student类型的List转成Teacher类型的List

此时可以用Stream流的方式实现:

写法如下:

List<Student> students = new ArrayList<>();

List<Teacher> teacher = students.stream().map(info -> {
    Teacher teach = new Teacher();
    BeanUtils.copyProperties(info, teach);
    return teach;
}).collect(Collectors.toList());

此时的teacher就已经得到赋值。

大功告成!

字段是这样的:

;