Java今日收获——BeanMapper

假如有一个Person类,一个Student类,如下:

public class Person
{
    public int id{get;set;}
    public string name{get;set;}
    public byte sex{get;set;}
    public int age{get;set;}
}

public class Student
{
    public string name{get;set;}
    public byte sex{get;set;}
    public string sexCN{get;set;}
}

然后有一个List对象personList,我们要从这个personList数据对象中得到一个新的studentList对象,在C#里的方法如下:

List studentList=new List();
foreach (var person in personList)
{
    Student student=new Student();
    student.name=person.name;
    student.sex=person.sex;
    student.sexCN=SexEnum.Default.GetDes(person.sex.ToString());
    studentList.Add(student);
}

在Java里面的实现方式如下:

List studentList=new ArrayList<>();
for(Person person in personList){
    Student student=new Student();
    BeanMapper.copy(person,student);//第一个参数是源数据,第二个参数是目标数据
    student.setSexCN(SexEnum.GetDes(person.sex.ToString()));
}

注: 目标数据实体里的属性名必须和源数据实体里的属性名保持一致。

到这里为止,我已经知道了BeanMapper的使用方法,但是还只知其然,不知其所以然。

后来一翻代码,发现BeanMapper是被同事封装过了的,它其实是基于DozerBeanMapper的map方法。就算看到这里,我可能还是没能深刻的知其所以然,不然应该也可以在C#里面实现一个类似的拷贝方法了吧。

你可能感兴趣的:(Java今日收获——BeanMapper)