【技术实现步骤摘要】
类转换方法和装置
本申请涉及计算机领域,具体而言,涉及一种类转换方法和装置。
技术介绍
在实际开发过程中,经常需要做两个类之间的转换,这两个类通常属于不同领域,例如,分别属于数据库和应用程序,或是属于不同的系统等。这两个类的特点在于非常相似,例如,大部分字段和属性名称相似,只有小部分字段和属性不一致,且进行转换时需要专门的转换逻辑。对于上述情况,一般都是在代码中手动进行两个类之间的转换,分别将一个对象每个属性值赋给另外一个对象对应的属性值。通常,还需要执行两个类之间的反向转换,反向转换代码和正向转换代码十分类似和重复,只是赋值方向发生变化。如果两个类添加新的属性,需要在正向转换和反向转换中同时添加转化代码,也十分相似。这样代码也无法复用,如果有另外两个类同样需要转换,还需要重复写类似代码。针对相关技术中两个类之间转换操作较为复杂的问题,目前尚未提出有效的解决方案。
技术实现思路
本申请的主要目的在于提供一种类转换方法和装置,以解决相关技术中两个类之间转换操作较为复杂的问题。为了实现上述目的,根据本申请的一个方面,提供了一种类转换方法。该方法包括:获取源类对象和目标类对象,其中,源类对象为源类的对象,目标类对象为目标类的对象;获取源类对象和目标类对象之间的映射关系;以及通过类转换器根据映射关系和映射器执行源类对象和目标类对象之间的转换,其中,类转换器中预先封装了类转换方法,映射器中预先封装了类转换规则,类转换方法用于根据类转换规则执行类之间的转换。进一步地,映射器包括成员映射器和类映射器,其中,成员映射器包括源成员名称和目标成员名称,类映射器包括源类、目标类和成 ...
【技术保护点】
一种类转换方法,其特征在于,包括:获取源类对象和目标类对象,其中,所述源类对象为源类的对象,所述目标类对象为目标类的对象;获取所述源类对象和所述目标类对象之间的映射关系;以及通过类转换器根据所述映射关系和映射器执行所述源类对象和所述目标类对象之间的转换,其中,所述类转换器中预先封装了类转换方法,所述映射器中预先封装了类转换规则,所述类转换方法用于根据所述类转换规则执行类之间的转换。
【技术特征摘要】
1.一种类转换方法,其特征在于,包括:获取源类对象和目标类对象,其中,所述源类对象为源类的对象,所述目标类对象为目标类的对象;获取所述源类对象和所述目标类对象之间的映射关系;以及通过类转换器根据所述映射关系和映射器执行所述源类对象和所述目标类对象之间的转换,其中,所述类转换器中预先封装了类转换方法,所述映射器中预先封装了类转换规则,所述类转换方法用于根据所述类转换规则执行类之间的转换。2.根据权利要求1所述的方法,其特征在于,所述映射器包括成员映射器和类映射器,其中,所述成员映射器包括源成员名称和目标成员名称,所述类映射器包括所述源类、所述目标类和成员映射器集合,其中,所述成员映射器集合中各个元素的类型均为所述成员映射器的类型。3.根据权利要求2所述的方法,其特征在于,通过类转换器根据所述映射关系和映射器执行所述源类对象和所述目标类对象之间的转换包括:遍历所述成员映射器集合,根据所述成员映射器集合中各个成员映射器的源成员名称获取各个源成员的值;以及根据所述映射关系和所述各个成员映射器的目标成员名称将所述各个源成员的值对应地赋值给所述各个成员映射器的目标成员。4.根据权利要求2所述的方法,其特征在于,通过类转换器根据所述映射关系和映射器执行所述源类对象和所述目标类对象之间的转换包括:遍历所述成员映射器集合,根据所述成员映射器集合中各个成员映射器的源成员名称获取各个源成员的值;分别判断所述各个成员映射器是否存在成员转换方法;对于判断出存在所述成员转换方法的成员映射器,调用所述成员转换方法对所述成员映射器的源成员的值执行转换,得到转换后的源成员的值,并将转换后的源成员的值赋值给对应的目标成员;以及对于判断出不存在所述成员转换方法的成员映射器,直接将所述成员映射器的源成员的值赋值给对应的目标成员。5.根据权利要求2所述的方法,其特征在于,所述映射器还包括集合成员映射器,所述集合成员映射器包括源中子成员类型和目标中子成员类型,所述集合成员映射器继承所述成员映射器,通过类转换器根据所述映射关系和映射器执行所述源类对象和所述目标类对象之间的转换包括:遍历所述成员映射器集合,并分别对所述成员映射器集合中各个成员映射器执行如下操作:根据所述成员映射器的源成员名称获取源成员的值;判断所述成员映射器是否是所述集合成员映射器;在判断出所述成员映射器不是所述集合成员映射器时,根据所述映射关系和所述成员映射器的目标成员名称将所述源成员...
【专利技术属性】
技术研发人员:马燕龙,
申请(专利权)人:北京国双科技有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。