guava Lists.transform使用

作用:将一个List中的实体类转化为另一个List中的实体类。

稍微方便一点。例如:将List<Student>转化为List<StudentVo>

Student:

package com.cy.model;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

public class Student{
    private String id;
    private String name;
    private String stuNo;
    private String address;
    private String good;

    public Student(){

    }

    public Student(String id, String name, String stuNo, String address, String good) {
        this.id = id;
        this.name = name;
        this.stuNo = stuNo;
        this.address = address;
        this.good = good;
    }

    public String getGood() {
        return good;
    }

    public void setGood(String good) {
        this.good = good;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStuNo() {
        return stuNo;
    }

    public void setStuNo(String stuNo) {
        this.stuNo = stuNo;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }
}
View Code

StudentVo:

package com.cy.vo;

import com.cy.model.Student;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

public class StudentVo {
    private String student_id;
    private String name;
    private String student_no;

    public StudentVo(){

    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getStudent_id() {
        return student_id;
    }

    public void setStudent_id(String student_id) {
        this.student_id = student_id;
    }

    public String getStudent_no() {
        return student_no;
    }

    public void setStudent_no(String student_no) {
        this.student_no = student_no;
    }

    @Override
    public String toString() {
        return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
    }
}
View Code
package com.cy.test.guava;

import com.cy.model.Student;
import com.cy.vo.StudentVo;
import com.google.common.base.Function;
import com.google.common.collect.Lists;
import org.apache.commons.beanutils.BeanUtils;
import java.util.ArrayList;
import java.util.List;

public class GuavaTest {

    public static void main(String[] args) {
        //guava Lists.transform测试

        List<Student> studentList = new ArrayList<>();
        studentList.add(new Student("1","zhangsan","no-001", "zhaotan", "true"));
        studentList.add(new Student("2","lisi","no-002", "qingshan", "true"));
        studentList.add(new Student("3","wangwu","no-003", "guangang", "false"));
        System.out.println(studentList);

        List<StudentVo> studentVoList = Lists.transform(studentList, new Function<Student, StudentVo>() {
            @Override
            public StudentVo apply(Student student) {
                StudentVo s = new StudentVo();
                try {
                    BeanUtils.copyProperties(s, student);
                } catch (Exception e) {
                }
                s.setStudent_id(student.getId());
                s.setStudent_no(student.getStuNo());
                return s;
            }
        });
        System.out.println(studentVoList);
    }
}

打印:

[Student[id=1,name=zhangsan,stuNo=no-001,address=zhaotan,good=true], Student[id=2,name=lisi,stuNo=no-002,address=qingshan,good=true], Student[id=3,name=wangwu,stuNo=no-003,address=guangang,good=false]]
[StudentVo[student_id=1,name=zhangsan,student_no=no-001], StudentVo[student_id=2,name=lisi,student_no=no-002], StudentVo[student_id=3,name=wangwu,student_no=no-003]]

依赖:

<dependency>
     <groupId>com.google.guava</groupId>
     <artifactId>guava</artifactId>
     <version>19.0</version>
</dependency>
原文地址:https://www.cnblogs.com/tenWood/p/10523024.html