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<Person>对象personList,我们要从这个personList数据对象中得到一个新的studentList对象,在C#里的方法如下:

List<Student> studentList=new List<Student>();
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<Student> 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#里面实现一个类似的拷贝方法了吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,764评论 18 399
  • 一. Java基础部分.................................................
    wy_sure阅读 3,835评论 0 11
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 11,137评论 6 13
  • 设计亮点:视频制作完成后,导出过程的进度条是围着视频封面边缘走的。 设计思考: 1)相比于一般的“对象”与“进度条...
    超型的番茄阅读 254评论 2 4
  • 《超级快速阅读》居“徳国亚马逊网上书店学习类榜首图书”,本书是《快速阅读》作者[德]克里斯蒂安.格吕宁成名之作...
    Lhmd阅读 678评论 0 1