System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机,具体涉及java对象的映射方法及装置、电子设备、存储介质。
技术介绍
1、对象间成员变量的映射,是指将一个java对象成员变量的值赋给另一个java对象成员变量的操作,应用开发时不同对象间成员变量的映射是常见的操作,尤其是前后端分离的web应用,entity层数据转换成vo层数据更是离不开映射。
2、现有技术中,先读取源对象成员变量的值,再赋值给目标对象的成员变量,每一个映射操作都是类似的代码,随着应用越来越复杂,当有大量的映射操作时,使用多个模板代码容易造成代码混乱,影响代码质量和开发效率效率。
3、因此,如何在大量的映射操作时,减少模板代码的使用量,以提高代码质量和开发效率,是目前急需解决的问题。
技术实现思路
1、有鉴于此,本专利技术实施例提供一种java对象的映射方法及装置、电子设备、存储介质,以实现简化代码,提高后期运维人员维护的效率的目的。
2、为实现上述目的,本专利技术实施例提供如下技术方案:
3、本专利技术实施例第一方面公开了一种java对象的映射方法,所述方法包括:
4、获取目标对象成员变量的元数据;
5、若所述目标对象的成员变量存在对应的注解,则确定为目标成员变量;所述注解包含预先按照预设规则配置的元素值;
6、解析所述注解得到所述元素值;
7、获取待与所述目标对象进行映射的源对象,并基于所述元素值对所述源对象进行校验;
8、若校验通
9、校验所述目标成员变量和所述第一源成员变量的数据类型是否一致;
10、若一致,则将所述第一源成员变量的值,赋值到所述目标成员变量;
11、若不一致,则对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量,并将所述第二源成员变量的值,赋值到所述目标成员变量。
12、优选的,所述基于所述元素值对所述源对象进行校验,包括:
13、从所述元素值中获取所述源对象的类名;
14、若所述源对象的类名为空值,表示对所述源对象的类名没有要求,确定校验通过;
15、若所述源对象的类名不为空值,校验从所述元素值中获取所述源对象的类名和待与所述目标对象进行映射的源对象是否一致,若一致,确定校验通过。
16、优选的,所述若校验通过,则获取源对象中待映射的第一源成员变量的数据类型,包括:
17、若校验通过,则从所述元素值中获取源对象中待映射的第一源成员变量的名称;
18、基于所述第一源成员变量的名称,从所述源对象的元数据信息中查询到所述第一源成员变量的数据类型。
19、优选的,所述若不一致,则对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量,并将所述第二源成员变量的值,赋值到所述目标成员变量,包括:
20、若不一致,则基于所述元素值,确定需调用的类型转换器的类型;
21、基于类型转换器接口和需调用的类型转换器的类型,实例化得到目标类型转换器;
22、利用所述目标类型转换器,对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量。
23、优选的,所述若不一致,则对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量,并将所述第二源成员变量的值,赋值到所述目标成员变量,包括:
24、若不一致,则基于所述元素值,确定需调用的类型转换器的类型;
25、基于需调用的类型转换器的类型,从预先构建的各个类型转换器中,确定目标类型转换器;所述目标类型转换器用于将所述第一源成员变量的数据类型,转换到所述目标成员变量的数据类型;
26、利用所述目标类型转换器,对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量。
27、本专利技术实施例第二方面公开了一种java对象的映射装置,所述装置包括:
28、第一获取单元,用于获取目标对象的成员变量;若所述目标对象的成员变量存在对应的注解,则确定为目标成员变量;所述注解包含预先按照预设规则配置的元素值;
29、解析单元,用于解析所述注解得到所述元素值;
30、第一校验单元,用于获取待与所述目标对象进行映射的源对象,并基于所述元素值对所述源对象进行校验;
31、第二获取单元,用于若校验通过,则获取源对象中待映射的第一源成员变量的数据类型;
32、第二校验单元,用于所述目标成员变量和所述第一源成员变量的数据类型是否一致;
33、赋值单元,用于当所述目标成员变量和所述第一源成员变量的数据类型一致时,将所述第一源成员变量的值,赋值到所述目标成员变量;
34、转换单元,用于当所述目标成员变量和所述第一源成员变量的数据类型不一致时,对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量,并将所述第二源成员变量的值,赋值到所述目标成员变量。
35、优选的,所述第一校验单元,具体用于:
36、从所述元素值中获取所述源对象的类名;
37、若所述源对象的类名为空值,表示对所述源对象的类名没有要求,确定校验通过;
38、若所述源对象的类名不为空值,校验从所述元素值中获取所述源对象的类名和待与所述目标对象进行映射的源对象是否一致,若一致,确定校验通过。
39、优选的,所述第二获取单元,具体用于:
40、若校验通过,则从所述元素值中获取源对象中待映射的第一源成员变量的名称;
41、基于所述第一源成员变量的名称,从所述源对象的元数据信息中查询到所述第一源成员变量的数据类型。
42、本专利技术实施例第三方面公开了一种存储介质,用于存储计算机程序,所述计算机程序被执行时,具体用于实现本专利技术实施例第一方面公开的任意一种所述的java对象的映射方法。
43、本专利技术实施例第四方面公开了一种电子设备,包括:存储器和处理器;
44、所述存储器用于存储计算机程序;
45、所述处理器用于执行所述计算机程序,具体用于实现本专利技术实施例第一方面公开的任意一种所述的java对象的映射方法。
46、基于上述本专利技术实施例提供的一种java对象的映射方法及装置、电子设备、存储介质,获取目标对象的成员变量;若所述目标对象的成员变量存在对应的注解,则确定为目标成员变量;所述注解包含预先按照预设规则配置的元素值;解析所述注解得到所述元素值;获取待与所述目标对象进行映射的源对象,并基于所述元素值对所述源对象进行校验;若校验通过,则获取源对象中待映射的第一源成员变量的数据类型;校验所述目标成员变量和所述第一源成员变量的数据类型是否一致;若一致,本文档来自技高网...
【技术保护点】
1.一种java对象的映射方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述元素值对所述源对象进行校验,包括:
3.根据权利要求1所述的方法,其特征在于,所述若校验通过,则获取源对象中待映射的第一源成员变量的数据类型,包括:
4.根据权利要求1至3任一所述的方法,其特征在于,所述若不一致,则对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量,并将所述第二源成员变量的值,赋值到所述目标成员变量,包括:
5.根据权利要求1至3任一所述的方法,其特征在于,所述若不一致,则对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量,并将所述第二源成员变量的值,赋值到所述目标成员变量,包括:
6.一种java对象的映射装置,其特征在于,所述装置包括:
7.根据权利要求6所述的装置,其特征在于,所述第一校验单元,具体用于:
8.根据权利要求6所述的装置,其特征在于,所述第二获取单元,具体用于:
9.一
10.一种电子设备,其特征在于,包括:存储器和处理器;
...【技术特征摘要】
1.一种java对象的映射方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述元素值对所述源对象进行校验,包括:
3.根据权利要求1所述的方法,其特征在于,所述若校验通过,则获取源对象中待映射的第一源成员变量的数据类型,包括:
4.根据权利要求1至3任一所述的方法,其特征在于,所述若不一致,则对所述第一源成员变量进行类型转换,得到与所述目标成员变量数据类型一致的第二源成员变量,并将所述第二源成员变量的值,赋值到所述目标成员变量,包括:
5.根据权利要求1至3任一所述的方法,其特征在于,所述若不一致,则对所述第...
【专利技术属性】
技术研发人员:丁庆国,
申请(专利权)人:中国农业银行股份有限公司海南省分行,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。