CN114895912A - 编码架构下实体类对象的转换方法、装置、设备及介质 - Google Patents
编码架构下实体类对象的转换方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114895912A CN114895912A CN202210638967.7A CN202210638967A CN114895912A CN 114895912 A CN114895912 A CN 114895912A CN 202210638967 A CN202210638967 A CN 202210638967A CN 114895912 A CN114895912 A CN 114895912A
- Authority
- CN
- China
- Prior art keywords
- attribute information
- attribute
- data
- class
- type
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 150
- 238000006243 chemical reaction Methods 0.000 claims abstract description 59
- 238000012216 screening Methods 0.000 claims abstract description 49
- 238000011068 loading method Methods 0.000 claims abstract description 22
- 238000013507 mapping Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 11
- 230000005540 biological transmission Effects 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims description 6
- 238000001914 filtration Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 34
- 238000012827 research and development Methods 0.000 abstract description 2
- 238000012546 transfer Methods 0.000 description 9
- 230000009466 transformation Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000011426 transformation method Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及研发技术领域,公开了编码架构下实体类对象的转换方法,包括获取并比较不同架构层中的类数据,获得参照集合数据;实例化类数据,获得原始对象数据和目标对象数据,并根据属性类型、属性名称和属性方法,获取原始对象数据的原始属性信息和目标对象数据的目标属性信息;根据参照集合数据,筛选原始属性信息,获得第一属性信息;根据与第一属性信息的相关性,从目标属性信息中获取第二属性信息;获取第一属性信息的装载属性方法和第二属性信息的赋值属性方法,并根据装载属性方法和赋值属性方法,建立拼装模型;以及根据拼装模型,将第一属性信息的属性值赋予第二属性信息。实现了开发进程中实体类对象的自动转换,提升了开发效率。
Description
技术领域
本发明涉及研发技术领域,尤其涉及编码架构下实体类对象的转换方法、装置、设备及介质。
背景技术
在软件开发的周期中,有面向对象的分析和设计阶段。在这个设计阶段中,开发人员致力于建立模拟问题领域的对象模型,再根据建立的对象模型来进行功能开发。而在开发过程中,不同的架构层所使用的对象模型也是不同的,并且每种对象模型都有自己的用途。考虑到后台安全以及功能需求等原因,数据在不同的架构层之间进行传输时,也需要将对象模型转换为当前架构层所适用的对象模型。
发明人意识到,上述的研发过程不能使用通用的实体类对象来代替所有实体类对象,因此依赖开发人员手工写代码以实现每一个对象的转化,这个对象转换的过程不仅浪费了开发人员的时间,并且产生了很多冗余代码,进而影响了开发效率。
发明内容
本发明提供编码架构下实体类对象的转换方法、装置、计算机设备及介质,以解决在开发过程中,不同的实体类对象需要开发人员手动转换,而导致冗余代码产生且开发效率低的技术问题。
第一方面,提供了编码架构下实体类对象的转换方法,包括:
获取并比较不同架构层中的类数据,获得参照集合数据;
实例化所述类数据,获得原始对象数据和目标对象数据,并根据属性类型、属性名称和属性方法,获取所述原始对象数据的原始属性信息和所述目标对象数据的目标属性信息;
根据所述参照集合数据,筛选所述原始属性信息,获得第一属性信息;
根据与所述第一属性信息的相关性,从所述目标属性信息中获取第二属性信息;
获取所述第一属性信息的装载属性方法和所述第二属性信息的赋值属性方法,并根据所述装载属性方法和所述赋值属性方法,建立拼装模型;以及
根据所述拼装模型,将所述第一属性信息的属性值赋予所述第二属性信息。
第二方面,提供了编码架构下实体类对象的转换装置,包括:
类数据处理模块,用于收集不同架构层的类数据,并比较位于不同架构层的所述类数据,获得参照集合数据;
对象实例模块,用于实例化所述类数据,获得原始对象数据和目标对象数据,并根据属性类型、属性名称和属性方法,获取所述原始对象数据的原始属性信息和所述目标对象数据的目标属性信息;
第一筛选模块,用于根据所述参照集合数据,筛选所述原始属性信息,获得第一属性信息;
第二筛选模块,用于根据与所述第一属性信息的相关性,从所述目标属性信息中获取第二属性信息;
拼装模块,用于获取所述第一属性信息的装载属性方法和所述第二属性信息的赋值属性方法,并根据所述装载属性方法和所述赋值属性方法,建立拼装模型;以及
赋值模块,用于根据所述拼装模型,将所述第一属性信息的属性值赋予所述第二属性信息。
第三方面,提供了一种设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述编码架构下实体类对象的转换方法的步骤。
第四方面,提供了一种介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述编码架构下实体类对象的转换方法的步骤。
上述编码架构下实体类对象的转换方法、装置、计算机设备及存储介质所实现的方案中,首先获取实体类对象对应的类数据,并根据不同架构层中类数据的类属性信息的不同,对类数据进行筛选,从而获取参照集合数据。再实例化类数据,获得位于不同架构层中的原始对象数据和目标对象数据,并获取原始属性信息和目标属性信息。通过参照集合数据,在原始属性信息中提取出第一属性信息,再提取目标属性信息与第一属性信息进行相关性比较,获得第二属性信息。将第二属性信息和第一属性信息匹配成对,并获取第一属性信息的装载属性方法和第二属性信息的赋值属性方法,构建出拼装模型。根据拼装模型,将第一属性信息的属性值赋予第二属性信息。最后,获得目标对象数据。根据本发明提供的方案,能够实现不同实体类对象之间的转换,并且仅需开发人员预设不同架构层的类数据,大大节省了开发人员的时间。而且转换过程中的编码统一,不仅能够实现准确的属性信息转换,还有利于开发人员追溯和修改架构内容。并且,本发明提供方案避免了两个实体类对象的直接比较,转换效率高。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中编码架构下实体类对象的转换方法的一应用环境示意图;
图2是本发明一实施例中编码架构下实体类对象的转换方法的一流程示意图;
图3是图1中步骤S10的一具体实施方式流程示意图;
图4是图3中步骤S13的一具体实施方式流程示意图;
图5是图1中步骤S30的一具体实施方式流程示意图;
图6是图5中步骤S32的一具体实施方式流程示意图;
图7是图1中步骤S40的一具体实施方式流程示意图
图8是本发明一实施例中实体类对象转换装置的一结构示意图;
图9是本发明一实施例中计算机设备的一结构示意图;
图10是本发明一实施例中计算机可读存储介质的一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的编码架构下实体类对象的转换方法,可应用在如图1的应用环境中,其中,数据库1用于存储数据。后台2是有权限的运营人员或特殊用户用权限登陆后看到的页面,在后台2可调用数据库1内的存储数据,还可对前台3的内容进行处理,其中后台2也可指代后端程序。前台3是用户可直接看到的页面,可以指代前端页面,例如网络页面。在开发过程中,开发人员根据服务对象和应用需求,定义多种数据参数组合,从而建立不同的对象模型,也可称为实体类对象。在数据库1中、后台2中、前台3中所使用的实体类对象,各有不同的用途。
请参阅图1所示,例如在数据库1中,使用的对象包括数据库对象(Data Object,简称DO),数据库对象是数据库1记录的直接映射,由于数据库对象包括有敏感数据,因此数据库对象不能直接传输给前台3,要将数据库对象转换为例如数据传输对象(DataTransferObject,简称DTO)。在数据库对象转换为数据传输对象时,会对数据库对象进行二次处理,改变数据库对象中的参数组合,以使数据库对象的内容足以对前台3开放。数据传输对象可用于不同应用间的数据传递,也可用于前台3的数据展示。在后台2中使用的实体类对象包括业务对象(Business Object,简称BO),业务对象用于在应用内部方法间进行数据传递,因此在数据从数据库1传递到后台2后,可以将数据传输对象转换为例如业务对象,以便于后台2处理。而业务对象不适合直接展示到前台3,因此在数据从后台2传输到前台3时,可以将业务对象转换为例如数据传输对象。在前台3中使用的实体类对象包括数据传输对象、值对象(Value Object,简称VO)等,其中,数据传输对象和值对象可用于前台3的数据展示。在开发进程中,数据可以从数据库1中调用并传送到后台2,经后台2处理后再传送到前台3展示。在开发进程中,前台3的数据也可以通过后台2处理,再传送到数据库1存储。
请参阅图1所示,在开发阶段,因为对数据的参数组合有不同的要求,因此在不同的架构成之间,会频繁地进行实体类对象的转换。而本发明提供的编码架构下实体类对象的转换方法可用于在数据库1、后台2和前台3间的数据转换,并且不限于上述实体类对象。下面通过具体的实施例对本发明进行详细的描述。
请参阅图2所示,图2本发明一实施例中编码架构下实体类对象的转换方法的一流程示意图,包括步骤S10-步骤S60。
S10、获取并比较不同架构层中的类数据,获得参照集合数据。
请参阅图2所示,本发明提供的编码架构下实体类对象的转换方法,可在开发设计的进程中,实现类数据在不同架构层之间的转换。其中,类数据在是具有相同属性和行为的一组实体类对象的集合,在本实施例中,类数据可以是Java语言环境中不同的类(class)。例如,类数据可以是学生类(class student),学生类代表的是多位学生的集合,具体指代的可以是有学生身份并进行学习行为的一类人。而在学生类中可以有多位不同的实体类对象,其中实体类对象为具体的学生对象,例如小明、李华等等。在开发进程中,类数据还包括多种类属性信息,同样以学生类为例,学生类的类属性信息可以包括学生的年龄、学生的学科成绩以及学生的性别等等。通过类数据的获取和建立,能够快速地整理在开发进程中使用的诸多实体类对象,并能够通过类数据的获取和建立,快速区分不同类实体类对象的属性信息,以及同一类实体类对象的属性信息。
需要理解的是,根据开发架构设计的不同,类数据在不同架构层的类属性信息可以各不一样,因此,设置参照集合数据以区分参与转换的类数据和不参与转换的类数据。具体的,在本实施例中,参照集合数据指的是在不同架构层之间进行数据传递时,参与数据传递或不参与数据传递的属性数据。其中,属性数据包括属性类型和属性名称。参照集合数据可以被开发人员手动填入并修改,也可以通过比较和筛选获得。
如图3所示,图3是图1中步骤S10的一具体实施方式流程示意图,在步骤S10中,获得参照集合数据的过程包括步骤S11-步骤S13。且步骤S11-步骤S13如下所示。
S11、获取类数据,并获取发送数据的第一架构层和接收数据的第二架构层。
S12、在开发第一架构层和第二架构层时,在第一架构层中,预设类数据包括第一类属性信息,在第二架构层中,预设类数据包括第二类属性信息。
S13、在将第一架构层的实体类对象转换至第二架构层的实体类对象时,比较第一类属性信息和第二类属性信息,构建筛选模型,并根据筛选模型,标记第一类属性信息,以形成参照集合数据。
请参阅图3所示,对于步骤S11-S13,在开发进程中存有多个架构层,首先明确作为实施主体的架构层。在本实施例中,将发送数据的架构层作为第一架构层,将接收数据的架构层作为第二架构层,则第一架构层和第二架构层即为实施主体。在获取实施主体后,再获取转换主体。在本实施例中,首先获取类数据,在第一架构层中,预设类数据包括第一类属性信息,在第二架构层中,预设类数据包括第二类属性信息。则转换主体为第一类属性信息和第二类属性信息,且数据的传递方向为从第一类属性信息到第二类属性信息。获得转换主体后,比较转换主体,以区分参与第一类属性信息和第二类属性信息中进行转换的属性内容,并根据转换过程中的属性内容,形成参照集合数据,以便于在后续的步骤中进行实体类对象的转换。
需要说明的是,在本实施例中,可以根据不参与转换的属性内容获得参照集合数据。在其他实施例中,也可以根据参与转换的属性内容共获得参照集合数据。具体的,可以将参与转换的属性信息和不参与转换的属性信息进行样本条数的对比,选择样本条数较少的属性信息作为参照集合数据的属性数据,以便于在实体类对象转换时,减少参与比较的数据量。
请参阅图4所示,图4是图3中步骤S13的一具体实施方式流程示意图,在步骤S13中,在获得转换主体后,根据第一类属性信息和第二类属性信息,构建筛选模型。且步骤S13具体包括步骤S131-步骤S136。且步骤S131-步骤S136如下所示。
S131、预设筛选对象和筛选条件,其中,筛选对象为第一类属性信息和第二类属性信息的属性类型和属性名称。
S132、逐条提取第一类属性信息,并将提取的第一类属性信息和第二类属性信息进行逐条比较,并执行步骤S133。
S133、判断提取的第一类属性信息是否符合筛选条件,并执行步骤S134或步骤S135。
S134、在步骤S132中,若提取的第一类属性信息符合筛选条件,则标记提取的第一类属性信息,并提取下一条第一类属性信息,直到第一类属性信息提取完毕。
S135、在步骤S132中,若提取的第一类属性信息不符合筛选条件,则跳过提取的第一类属性信息,并提取下一条第一类属性信息,直到第一类属性信息提取完毕。
S316、读取第一类属性信息,收集标记或未标记的第一类属性信息,形成参照集合数据。
请参阅图4所示,对于步骤S131-步骤S136,在开发架构中,第一类属性信息按照行分布,且第一类属性信息有多行。可以按照行数提取第一类属性信息,并将提取的第一类属性信息和第二类属性信息进行逐条比较,能够确保第一属性信息充分提取,提升参照集合数据的完整性和可靠性。具体的,属性信息包括属性类型和属性名称。筛选模型包括筛选对象和筛选条件,当第一类属性信息符合筛选条件,即当存在属性类型和属性名称都与第一类型信息相同的第二类属性信息时,将当前提取的第一类属性信息标记,以便于后续区分。具体的,标记可以是在属性名称上加上可识别的字符。若第一类属性信息不符合筛选条件,则不标记当前的第一类属性信息。以此类推,直到完成对第一类属性完成筛选后,再次读取第一类属性信息,收集被标记的第一类属性信息或收集未被标记的第一类属性信息,形成参照集合数据。其中,在Java语言中,可以通过Java的反射指令获取类数据中的类属性信息。
需要注意的是,预设第一类属性信息和第二类属性信息的过程可以是开发人员在开发过程中设定,也可以提取已有的转换实例作为第一类属性信息和第二类属性信息。其中,参照集合数据可以是参与转换的第一类属性信息对应的属性数据,也可以是不参与转换的第一类属性信息对应的属性数据。从而挑选出在第一类属性信息和第二类属性信息中都包含的属性内容。
在本实施例中,属性类型包括Java语言中的基本数据类型和引用数据类型,其中引用数据类型为基本数据类型包装后获得。具体的,属性类型包括整数类型、浮点数类型、字符类型(char)、布尔类型(boolean)。其中,整数类型包括位数据(byte)、短整数类型(short)、整数类型(int)和长整数类型(long),浮点数类型包括单精度类型(float)和双精度类型(double)。在本实施例中,引用数据类型包括Byte、Short、Integer、Long、Float、Double、Boolean和Charcter。
请参阅图1-图4所示,以学生类为例,即获取的类数据为学生类,而第一架构层例如是数据库1,第二架构层例如是后台2。根据开发需求,开发人员可以在数据库1中预设学生类包括第一类属性信息,而第一类属性信息包括学生的年龄、学生的性别、学生的学科成绩。开发人员可以在后台2中预设学生类包括第二类属性信息,而第二类属性信息包括学生的年龄。其中,因此将第一类属性信息和第二类属性信息进行比较,标记学生的学科成绩,即在转换过程中,学生的学科成绩和学生的性别不可被转换至第二架构层中。再确认在第一类属性信息和第二类属性信息中,学生的年龄是否为同一属性类型,若为同一属性类型,例如整数类型(int),则学生的年龄可被转换到第二架构层中。在本实施例中,综合学生的学科成绩、性别的相关数据,形成参照集合数据。在其他实施例中,也可以综合学生的年龄的相关数据,形成参照集合数据。且参照集合数据包括属性类型和属性名称。具体的,在Java中,可以用ARGs参数存储参照集合数据的属性信息,且存储形式可以是数组。例如,参照集合数据包括ARGs[int学生的学科成绩。int学生的年龄]等等。
请参阅图1和图3所示,第一架构层和第二架构层由开发人员进行架构设计,在本实施例中,第一架构层和第二架构层可以是数据库1、后台2、前台3中的一种,在其他实施例中,第一架构层和第二架构层也可以表示为展示层、业务层、持久层等等,在此不做限定。其中,类数据在开发架构中,由开发人员设计,在本发明中对此不做限定。获得参照集合数据后,根据参照集合数据,排除不参与转换的属性数据,不仅能够降低参与转换的数据量,还能提升实体类对象转换的准确率。
请参阅图2所示,实体类对象的转换方法包括步骤S20,且步骤S20如下所示。
步骤S20、实例化类数据,获得原始对象数据和目标对象数据,并根据属性类型、属性名称和属性方法,获取原始对象数据的原始属性信息和目标对象数据的目标属性信息。
请参阅图2所示,类数据是一类实体类对象的集合,在开发编程时,进行的是不同架构层间实体类对象的转换。因此在第一架构层中,实例化类数据,获得原始对象数据,在第二架构层中,实例化类数据,获得目标对象数据。并通过Java的反射指令获取原始对象数据的原始属性信息。其中,原始属性信息包括属性类型、属性名称和属性方法。同样地,可以通过Java的反射指令获取目标对象数据的属性类型、属性名称和属性方法,从而获得目标属性信息。其中,原始对象数据和目标对象数据属于不同的架构层,且原始对象数据和目标对象数据可以是数据库对象、数据传输对象、业务对象和值对象等实体类对象中的任意一种。其中,属性类型包括Java的基本数据类型和引用数据类型,属性方法包括装载属性方法和赋值属性方法。其中,装载属性方法可以是Java中的get方法,赋值属性方法可以是Java中的set方法。
请参阅图1和图4所示,以学生类为例,第一架构层为数据库1,根据第一类属性信息,实例化学生类,得到的实体类对象为李华,而李华这一实体类对象的原始属性信息包括李华的年龄15、李华的数学成绩85、李华的性别男、李华的ID卡密码为123等等。例如,第二架构层为后台2,根据第二类属性信息,实例化学生类得到的实体类对象是小明,而小明这一实体类对象的目标属性信息包括小明的年龄13、小明的性别女等等。
请参阅图3和图4所示,值得注意的是,实例化指的是在编程过程中,根据类数据创建实体类对象的过程。而原始对象数据为在第一架构层中,根据类数据创建的实体类对象。目标对象数据为在第二架构层中,根据类数据创建的实体类对象。其中,原始对象数据和目标对象数据的实体类对象根据开发设计确定,在此不做限定。原始对象数据和目标对象数据的实体类对象名称可以相同,也可以不相同。例如,原始对象数据的实体类对象名称是李华,目标对象数据的实体类对象名称可以是李华,也可以是小明或小红等等。
请参阅图2所示,实体类对象转换的过程包括步骤S30,且步骤S30如下所示。
S30、根据参照集合数据,筛选原始属性信息,获得第一属性信息。
请参阅图2所示,原始对象数据转换为目标对象数据的过程,实现的是属性数据的传递。因此在获得原始对象数据后,可以通过Java的反射指令获得原始属性信息。再根据参照集合数据,筛选出原始属性信息中参与实体类对象转换过程的属性数据。具体的,请参阅图5所示,图5是图1中步骤S30的一具体实施方式流程示意图,步骤S30具体包括步骤S31和步骤S32,且步骤S31和步骤S32如下所示。
S31、预设映射条件。
S32、读取原始属性信息,并根据映射条件排除原始属性信息中不参与转换的属性信息,从而获得第一属性信息。
请参阅图5所示,对于步骤S31和步骤S32,在原始属性信息和参照集合数据之间建立映射关系,从而通过参照集合数据将原始属性信息中的属性内容进行筛选,获得第一属性信息。其中,第一属性信息为可转换到第二架构层中的属性内容。其中,对于第一属性信息,映射条件为在参照集合数据中存在属性类型相同且属性名称相同的属性内容。具体的,请参阅图6所示,图6是图5中步骤S32的一具体实施方式流程示意图,步骤S32具体包括步骤S321-步骤S326,如下所示。
步骤S321,逐条读取原始属性信息。
步骤S322,判断原始属性信息是否符合映射条件,并执行步骤S323或步骤S324。
步骤S323,当原始属性信息符合映射条件,保留原始属性信息,并执行步骤S325。
步骤S324,当原始属性信息不符合映射条件,去除原始属性信息,并执行步骤S325。
步骤S325,判断当前的原始属性信息是否为最后一行,若当前的原始属性信息为最后一行,执行步骤S326,若当前的原始属性信息不是最后一行,执行步骤S321。
步骤S326,收集保留的原始属性信息集合,并获得第一属性信息。
请参阅图6所示,对于步骤S321-步骤S326,逐条读取原始属性信息,具体的,在Java中可以通过反射指令,按照行数,从第一行开始读取原始属性信息,并将原始属性信息和参照集合数据中的数组进行对比,当满足映射条件,则将满足映射条件的原始属性信息进行保留。具体的,可以按照行数对原始属性信息设立编号,例如第一行对应编号1,第二行对应编号2,以此类推,第n行对应编号n。当编号1的原始属性信息参与对比时,将编号1的原始属性信息和参照集合数据中的数组轮流对比,以便于对编码内容进行追溯。其中,参照集合数据中存储的数组代表参与转换的属性数据,若编号1的原始属性信息满足映射条件,则保留编号1的原始属性信息。以此类推,直到完成编号为n的原始属性信息和参照集合数据的对比。将保留下来的原始属性信息,作为第一属性信息,用于实体类对象转换。
请参阅图6所示,在本实施例中,将映射条件设置为原始属性信息和参照集合数据中的数组对应,其中,对应体现为属性类型相同且属性名称相同。因此,当参照集合数据中存储的数组为参与转换的属性数据时,满足映射条件可以视为当前的原始属性信息可以转换到第二架构层中,因此保留当前的原始属性信息,反之则去除当前的原始属性信息。在其他实施例中,当参照集合数据中存储的数组为不参与转换的属性数据时,满足映射条件可视为当前的原始属性信息不能被转换到第二架构层中,因此可以去除符合映射条件的原始属性信息。其中,映射条件为开发人员预设的条件。
请参参阅图1-图6所示,为便于说明,以下以学生类为例。在例如数据库1中实例化学生类,得到的原始对象数据为学生一。在例如后台2中实例化学生类,得到的目标对象数据为学生二。通过Java的反射指令提取出学生一的原始属性信息,且学生一的原始属性信息有例如5条属性内容,属性内容分别为int-age-16、int-math-95、boolean-gender-女、int-English-100、int-grade-4。当参照集合数据代表参与转换的属性数据,且参照集合数据例如为ARGs[int-age,int-math,boolean-gender]。其中,int和boolean为属性类型,age、math、gender、English和grade为属性名称,而属性名称后的数据为属性值。具体的,按照属性类型和属性名称,可以将原始属性信息的每条属性内容按照行数进行编号(在Java中属性内容为行排布,此处不显示行),通过Java的反射指令获取编号1的属性内容,例如为int-age-16。将int-age-16与参照集合数据中的数组进行对比,找到了符合映射条件的数组int-age,因此保留int-age-16。以此类推,直到int-grade-4。完成比较后,将保留下来的原始属性信息作为第一属性信息,则第一属性信息包括int-age-16、int-math-95、boolean-gender-女。
请参阅图2-图6所示,从上述方案可以看出,在原始对象数据转换的过程中,可以直接将原始对象数据和参照集合数据进行对比,不用将两个具体的实体类对象进行比较,减少了比较的样本量。且在相同的两个架构层之间,同属一类的实体类对象进行转换时,能够共用同一组参照集合数据,能够降低编程代码的冗余度,提升实体类对象的转换效率。在开发进程中,实体类对象转换的代码统一且简明,有利于开发人员追溯并对开发架构进行修改。
请参阅图2所示,实体类对象转换的过程还包括步骤S40,且步骤S40如下所示。
S40、根据与第一属性信息的相关性,从目标属性信息中获取第二属性信息,并将第二属性信息和第一属性信息匹配成对。
请参阅图2所示,在步骤S40中,第二属性信息为第二架构层中参与转换的属性信息。当属性类型和属性名称相同,则目标属性信息和第一属性信息相关,并将目标属性信息作为第二属性信息,与相关的属性信息匹配成对,以便于转换过程的进行。
请参阅图7所示,图7是图1中步骤S40的一具体实施方式流程示意图,步骤S40包括步骤S41-步骤S44,如下所示。
步骤S41、逐条提取目标属性信息。
步骤S42、判断是否存在和目标属性信息相关的第一属性信息,若存在和目标属性信息相关的第一属性信息,执行步骤S43,若不存在和目标属性信息相关的第一属性信息,则执行步骤S44。
步骤S43、若存在和目标属性信息相关的第一属性信息,将目标属性信息作为第二属性信息,并将第二属性信息和对应的第一属性信息匹配成对。
步骤S44、判断当前的目标属性信息是否为最后一条,若当前的目标属性信息为最后一条目标属性信息,执行步骤S50,若当前的目标属性信息不是最后一条目标属性信息,则执行步骤S41。
请参阅图7所示,对于步骤S41-步骤S44,在Java中,目标属性中的每一条属性内容按照行排列,通过Java的反射指令可以逐条提取目标属性信息,并将目标属性信息和第一属性信息进行比较,直到将目标属性信息全部提取并完成比较。其中,若当前的目标属性信息和第一属性信息的属性信息相同,则将当前的目标属性信息保留并作为第二属性信息。具体的,可以通过Java的反射指令从目标属性信息中提取属性类型、属性名称,属性信息相同体现为属性类型相同且属性名称相同。将提取出的第二属性信息和对应的第一属性信息匹配成对,用于建立拼装模型。其中,每提取出一条第二属性信息,就建立一次拼装模型,并根据拼装模型完成由第一属性信息到第二属性信息的赋值,以减少计算机程序的冗余。
请参阅图2所示,编码架构下实体类对象的转换方法包括步骤S50,且步骤S50如下所示。
S50、根据匹配成对的第一属性信息和第二属性信息,获取第一属性信息的装载属性方法和第二属性信息的赋值属性方法,并建立拼装模型。
请参阅图2所示,在第一架构层的实体类对象传递至第二架构层时,将第一属性信息的属性值赋予第二属性信息。因此,获取第一属性信息的装载属性方法,具体的,装载属性方法可以是Java中的get方法。获取第二属性的赋值属性方法,具体的,赋值属性方法可以是Java中的set方法,从而形成拼装模型。其中,拼装模型指的是Java编程中的程序语句。
请参阅图7所示,第一属性信息中包括例如3行属性内容,且分别为int-age-16、int-math-95、boolean-gender-女。而目标属性信息中包括例如4行属性内容,且分别为int-age-36、int-math-55、boolean-gender-男、int-Chinese-60,其中,按照顺序依次提取目标属性信息的属性内容。而第1条属性内容int-age-36,在第一属性信息中存在相关的属性内容int-age-16,则将int-age-16保留,作为第二属性信息。再将int-age-16和int-age-36匹配成对,并获取第一属性信息int-age-16的装载属性方法,再获取第二属性信息int-age-36的赋值属性方法,从而得到拼装模型。
请参阅图2所示,编码架构下实体类对象的转换方法包括步骤S60,且步骤S60如下所示。
S60、根据拼装模型,将第一属性信息的属性值赋予第二属性信息。
请参阅图2所示,第一属性信息和第二属性信息进行匹配成对,每一对第一属性信息和第二属性信息都对应形成一次拼装模型。在拼装模型中,通过装载属性方法获取第一属性信息的属性值,再通过赋值属性方法将属性值赋予第二属性信息。从而完成第一属性信息到第二属性信息的转换。其中,目标属性信息中未被赋值替换的属性内容保持不变。为便于说明如何完成转换,以下继续以学生一和学生二为例,说明如下。
请参阅图2和图7所示,第一属性信息中包括例如3行属性内容,且分别为int-age-16、int-math-95、boolean-gender-女。第二属性信息中包括例如3行内容,且分别为int-age-36、int-math-55、boolean-gender-男。将第一属性信息和第二属性信息分别配对并形成拼装模型,在拼装模型中,通过Java中第一属性信息的get方法,从int-age-16中获取属性值16,并通过Java中第二属性信息的set方法将16这个属性值赋值给int-age-36,从而将原始属性信息的属性内容转换给目标属性信息。接着进行int-math-55和第一属性信息的比较,并再次形成拼装模型,获取int-math-95的属性值95,并赋值给int-math-55。以此类推,赋值后得到的第二属性信息为int-age-16、int-math-95、boolean-gender-女。而最后得到的目标属性信息为int-age-16、int-math-95、boolean-gender-女和int-Chinese-60。
需要说明的是,在类数据中没有属性内容、第一属性信息和/或第二属性信息为空集、原生jdk调用异常的情况下,设置有与情况相对应的异常提示,并可以将对应的异常信息打印出来。其中,异常提示出现,但不会抛出异常信息,只需要关注第二属性信息是否为空集,就能明确转换过程是否正常进行,不需要捕捉和处理异常。
请参阅图2和图3所示,如果类数据中没有属性信息,则第一类属性信息和第二类属性信息不存在,因此参照集合数据为空集。而在步骤S20中,类数据不能实例化原始对象数据和目标对象数据,因此实体类对象的转换过程发生后,第二属性信息为空集。在Java中,对应的设置异常提示,异常提示可以是“找不到这个方法抛出的异常”或“No SuchMethod Exception”。
请参阅图2-图7所示,在步骤S30中,第一属性信息也可以是空集,因为不存在提供装载属性方法的属性内容,因此在步骤S50中不能获得拼装模型,赋值过程也不会发生。赋值过程不发生,则不会存在原始对象数据到目标对象数据的转换。在步骤S40中,第二属性信息为目标属性信息的子集,且第二属性信息可以是空集,当第二属性信息为空集,因为不存在提供赋值属性方法的属性内容,因此在步骤S50中不能获得拼装模型,赋值过程不会发生。得到的第二属性信息也会是空集。在Java中,对应的设置异常提示,异常提示可以是“没有权限操作这个方法抛出的异常”或“Illegal Access Exception”。
请参阅图2所示,在Java中,原生jdk调用异常的情况下,不能用反射指令对属性信息进行正常地获取,因此在步骤S10中提取第一类属性信息、第二类属性信息或第一属性信息时可能出错,在步骤在步骤S20中提取原始属性信息和目标属性信息可能出错,在步骤在步骤40中提取目标属性信息可能出错。当出现这种情况,可以设置异常提示为“使用jdk反射抛出异常”或“Invocation Target Exception”。
请参阅图1-图7所示,在上述方案中,首先获取实体类对象对应的类数据,并根据架构层的不同,构建筛选模型,从而获取参照集合数据。再实例化类数据,获得位于不同架构层中的原始对象数据和目标对象数据,并获取原始属性信息和目标属性信息。通过参照集合数据,在原始属性信息中提取出第一属性信息,再提取目标属性信息与第一属性信息进行相关性比较,获得第二属性信息。将第二属性信息和第一属性信息匹配成对,并获取第一属性信息的装载属性方法和第二属性信息的赋值属性方法,构建出拼装模型。根据拼装模型,将第一属性信息的属性值赋予第二属性信息。最后,获得目标对象数据。根据本发明提供的方案,能够实现不同实体类对象之间的转换,并且仅需开发人员预设不同架构层的类数据,大大节省了开发人员的时间。而且转换过程中的编码统一,不仅能够实现准确的属性信息转换,还有利于开发人员追溯和修改架构内容。并且,本发明提供方案避免了两个实体类对象的直接比较,转换效率高。
请参阅图1-图7所示,通过上述方案,在Java中,可以自动的对类进行识别,高效的进行类的转换和属性赋值,不需要开发人员进行额外的处理,提高了开发人员的开发效率,降低了开发周期,节约了开发成本,极大的减少了冗余代码的产生,提高了代码的可读性和可复用性,优化了代码的展示效果和风格。同时,本发明所述实体类对象转换方法对应的装置十分实用,几乎不需要额外的学习成本,装置以底层字节码文件为切入点,通过反射获取实体类对象的属性和方法,实现高效率的转换。而且,只需使用pom文件引入,就可以方便的使用本发明所述编码架构下实体类对象的转换方法。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
请参阅图8所示,在一实施例中,提供一种实体类对象转换装置100,该实体类对象转换装置100与上述实施例中编码架构下实体类对象的转换方法一一对应。实体类对象转换装置100包括类数据处理模块101、对象实例模块102、第一筛选模块103、第二筛选模块104、拼装模块105和赋值模块106。各功能模块详细说明如下。
类数据处理模块101,用于收集不同架构层的类数据,并比较位于不同架构层的所述类数据,获得参照集合数据。
对象实例模块102,用于实例化所述类数据,获得原始对象数据和目标对象数据,并根据属性类型、属性名称和属性方法,获取所述原始对象数据的原始属性信息和所述目标对象数据的目标属性信息。
第一筛选模块103,用于根据所述参照集合数据,筛选所述原始属性信息,获得第一属性信息。
第二筛选模块104,用于根据与所述第一属性信息的相关性,从所述目标属性信息中获取第二属性信息。
拼装模块105,用于获取所述第一属性信息的装载属性方法和所述第二属性信息的赋值属性方法,并根据所述装载属性方法和所述赋值属性方法,建立拼装模型。
赋值模块106,用于根据所述拼装模型,将所述第一属性信息的属性值赋予所述第二属性信息。
在一实施例中,类数据处理模块101,具体用于:
获取类数据,并获取发送数据的第一架构层和接收数据的第二架构层。
在第一架构层中,预设类数据包括第一类属性信息,在第二架构层中,预设类数据包括第二类属性信息。
比较第一类属性信息和第二类属性信息,构建筛选模型,并根据筛选模型,标记第一类属性信息,以形成参照集合数据。
且类数据处理模块101,具体还用于:
预设筛选对象和筛选条件,其中,筛选对象为第一类属性信息的属性类型和属性名称、第二类属性信息的属性类型和属性名称。
逐条提取第一类属性信息,并将提取的第一类属性信息和第二类属性信息进行逐条比较。
判断提取的第一类属性信息是否符合筛选条件。
若提取的第一类属性信息符合筛选条件,则标记提取的第一类属性信息,并提取下一条第一类属性信息,直到第一类属性信息提取完毕。
若提取的第一类属性信息不符合筛选条件,则跳过提取的第一类属性信息,并提取下一条第一类属性信息,直到第一类属性信息提取完毕。
读取第一类属性信息,收集标记或未标记的第一类属性信息,形成参照集合数据。
在一实施例中,第一筛选模块103,具体用于:
预设映射条件。
读取原始属性信息,并根据映射条件排除原始属性信息中不参与转换的属性信息,从而获得第一属性信息。
第一筛选模块103,具体还用于:
逐条读取原始属性信息。
判断原始属性信息是否符合映射条件。
当原始属性信息符合映射条件,保留原始属性信息。
当原始属性信息不符合映射条件,去除原始属性信息。
判断当前的原始属性信息是否为最后一条,若当前的原始属性信息为最后一条,收集保留的原始属性信息集合,并获得第一属性信息,若当前的原始属性信息不是最后一条,读取下一条原始属性信息,直到读取完原始属性信息。
在一实施例中,第二筛选模块104,具体用于:
逐条提取目标属性信息。
判断是否存在和目标属性信息相关的第一属性信息。
若存在和目标属性信息相关的第一属性信息,将目标属性信息作为第二属性信息,并将第二属性信息和对应的第一属性信息匹配成对。
判断当前的目标属性信息是否为最后一条,若为最后一条,则完成第二属性信息的提取,若不是最后一条,则读取下一条目标属性信息,直到遍历目标属性信息。
本发明提供了一种实体类对象转换装置,先获取类数据在不同架构层中的类属性信息,并获得参照集合数据。再实例化类数据获得原始对象数据和目标对象数据,根据参照集合数据和原始对象数据的对比,获得第一属性信息,再根据第一属性信息和目标属性信息的对比,获得第二属性信息,从而确认直接参与转换赋值的属性内容。再获取第一属性信息的装载属性方法和第二属性信息的赋值属性方法,形成统一的拼装模型,通过拼装模型完成从第一属性信息到第二属性信息的赋值。
请参阅图8-图10所示,关于实体类对象转换装置100的具体限定可以参见上文中对于编码架构下实体类对象的转换方法的限定,在此不再赘述。上述实体类对象转换装置100中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备200中的处理器201中,也可以以软件形式存储于计算机设备200中的存储器202中,以便于处理器201调用执行以上各个模块对应的操作。
请参阅图9和图10所示,在一个实施例中,提供了一种计算机设备200,计算机设备200包括处理器201和存储器202,所述存储器202存储有计算机程序2021,所述处理器201运行计算机程序2021,实现上述实体类对象的转换方法。所述处理器201可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等。还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。所述存储器202可能包含随机存取存储器(RandomAccess Memory,简称RAM),也可能还包括非易失性存储器(Non-VolatileMemory),例如至少一个磁盘存储器。所述存储器202也可以为随机存取存储器(RandomAccess Memory,RAM)类型的内部存储器,所述处理器201、存储器202可以集成为一个或多个独立的电路或硬件,如:专用集成电路(Application SpecificIntegratedCircuit,ASIC)。需要说明的是,上述的存储器202中的计算机程序2021可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质300中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备200(可以是个人计算机,电子设备,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。
请参阅图2和图9所示,在一个实施例中,提供了一种计算机设备200,包括处理器201、存储器202,以及存储在存储器202上并可在处理器201上运行的计算机程序2021,处理器201执行计算机程序2021时实现以下步骤:
在开发进程中,获取并比较不同架构层中的类数据,获得参照集合数据。
实例化类数据,获得原始对象数据和目标对象数据,并根据属性类型、属性名称和属性方法,获取原始对象数据的原始属性信息和目标对象数据的目标属性信息。
根据参照集合数据,筛选原始属性信息,获得第一属性信息。
根据与第一属性信息的相关性,从目标属性信息中获取第二属性信息。
获取第一属性信息的装载属性方法和第二属性信息的赋值属性方法,并根据装载属性方法和赋值属性方法,建立拼装模型。以及
根据拼装模型,将第一属性信息的属性值赋予第二属性信息。
请参阅图2、图9和图10所示,在一个实施例中,提供了一种计算机可读存储介质300,计算机可读存储介质300内存储有计算机指令301,计算机指令301被处理器201执行时,实现以下步骤:
在开发进程中,获取并比较不同架构层中的类数据,获得参照集合数据。
实例化类数据,获得原始对象数据和目标对象数据,并根据属性类型、属性名称和属性方法,获取原始对象数据的原始属性信息和目标对象数据的目标属性信息。
根据参照集合数据,筛选原始属性信息,获得第一属性信息。
根据与第一属性信息的相关性,从目标属性信息中获取第二属性信息。
获取第一属性信息的装载属性方法和第二属性信息的赋值属性方法,并根据装载属性方法和赋值属性方法,建立拼装模型。以及
根据拼装模型,将第一属性信息的属性值赋予第二属性信息。
请参阅图1、图2、图9和图10所示,需要说明的是,上述关于计算机可读存储介质300或计算机设备200所能实现的功能或步骤,可对应参阅前述方法实施例中,数据库1、前台3和后台2的相关描述,为避免重复,这里不再一一描述。
请参阅图1、图9和图10所示,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序2021来指令相关的硬件来完成,计算机程序2021可存储于存储器202中和/或一种非易失性/易失性的计算机可读存储介质300中,计算机程序2021在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器202、数据库1或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.编码架构下实体类对象的转换方法,其特征在于,包括:
获取用于发送数据的第一架构层和用于接收数据的第二架构层,获取所述第一架构层的类数据和所述第二架构层的类数据,并比较所述第一架构层的类数据和所述第二架构层的类数据,以获得参照集合数据;
实例化所述第一架构层的类数据,以获得原始对象数据,实例化所述第二架构层的类数据,以获得目标对象数据,并根据属性类型、属性名称和属性方法,获取所述原始对象数据的原始属性信息和所述目标对象数据的目标属性信息;
根据所述参照集合数据,筛选所述原始属性信息,获得第一属性信息;
根据与所述第一属性信息的相关性,从所述目标属性信息中获取第二属性信息;
获取所述第一属性信息的装载属性方法和所述第二属性信息的赋值属性方法,并根据所述装载属性方法和所述赋值属性方法,建立拼装模型;以及
根据所述拼装模型,将所述第一属性信息的属性值赋予所述第二属性信息。
2.如权利要求1所述的编码架构下实体类对象的转换方法,其特征在于,所述比较所述第一架构层的类数据和所述第二架构层的类数据,以获得参照集合数据的步骤包括:
在开发所述第一架构层和所述第二架构层时,预设所述第一架构层的类数据包括第一类属性信息,预设所述第二架构层的类数据包括第二类属性信息;以及
在将所述第一架构层的实体类对象转换至所述第二架构层的实体类对象时,根据所述第一类属性信息和所述第二类属性信息是否相同,筛选所述第一类属性信息,以获得所述参照集合数据。
3.如权利要求2所述的编码架构下实体类对象的转换方法,其特征在于,所述根据所述第一类属性信息和所述第二类属性信息是否相同,筛选所述第一类属性信息,以获得所述参照集合数据的步骤包括:
预设筛选条件,且所述筛选条件为所述第一类属性信息的属性类型和属性名称与所述第二类属性信息相同;
逐条提取所述第一类属性信息,并将所述第一类属性信息和所述第二类属性信息进行逐条比较,判断所述第一类属性信息是否符合所述筛选条件;
若所述第一类属性信息符合所述筛选条件,则标记所述第一类属性信息,若所述第一类属性信息不符合所述筛选条件,则跳过所述第一类属性信息;以及
读取所述第一类属性信息,并收集标记或未标记的所述第一类属性信息,形成参照集合数据。
4.如权利要求1所述的编码架构下实体类对象的转换方法,其特征在于,所述根据所述参照集合数据,筛选所述原始属性信息,获得第一属性信息的步骤包括:
预设映射条件,在所述原始对象数据和所述参照集合数据之间建立映射关系;以及
读取所述原始属性信息,并根据所述映射条件,筛选并去除所述原始属性信息中不参与转换的属性信息,以获得所述第一属性信息。
5.如权利要求1所述的编码架构下实体类对象的转换方法,其特征在于,所述根据与所述第一属性信息的相关性,从所述目标属性信息中获取第二属性信息的步骤包括:
逐条提取所述目标属性信息;
根据属性名称和属性类型是否相同,判断是否存在和所述目标属性信息相关的所述第一属性信息;
若存在和所述目标属性信息相关的所述第一属性信息,将所述目标属性信息作为所述第二属性信息;以及
若不存在和所述目标属性信息相关的所述第一属性信息,则跳过当前的目标属性信息。
6.如权利要求1所述的编码架构下实体类对象的转换方法,其特征在于,将所述第一属性信息的属性值赋予所述第二属性信息的步骤包括:
从所述目标属性信息中逐条获取所述第二属性信息;
将属性类型相同且属性名称相同的所述第一属性信息和所述第二属性信息匹配成对;以及
在获取下一条所述第二属性信息之前,根据所述拼装模型完成对所述第二属性信息的赋值。
7.如权利要求6所述的编码架构下实体类对象的转换方法,其特征在于,所述根据所述拼装模型,将所述第一属性信息的属性值赋予所述第二属性信息的步骤包括:
通过所述装载属性方法获取所述第一属性信息的属性值;以及
通过所述赋值属性方法将所述第一属性信息的属性值赋予所述第二属性信息。
8.编码架构下实体类对象的转换装置实体类对象,其特征在于,包括:
类数据处理模块,获取用于发送数据的第一架构层和用于接收数据的第二架构层,获取所述第一架构层的类数据和所述第二架构层的类数据,并比较所述第一架构层的类数据和所述第二架构层的类数据,以获得参照集合数据;
对象实例模块,用于实例化所述第一架构层的类数据,以获得原始对象数据,实例化所述第二架构层的类数据,以获得目标对象数据,并根据属性类型、属性名称和属性方法,获取所述原始对象数据的原始属性信息和所述目标对象数据的目标属性信息;
第一筛选模块,用于根据所述参照集合数据,筛选所述原始属性信息,获得第一属性信息;
第二筛选模块,用于根据与所述第一属性信息的相关性,从所述目标属性信息中获取第二属性信息;
拼装模块,用于获取所述第一属性信息的装载属性方法和所述第二属性信息的赋值属性方法,并根据所述装载属性方法和所述赋值属性方法,建立拼装模型;以及
赋值模块,用于根据所述拼装模型,将所述第一属性信息的属性值赋予所述第二属性信息。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1至7任一项所述编码架构下实体类对象的转换方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述编码架构下实体类对象的转换方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210638967.7A CN114895912A (zh) | 2022-06-07 | 2022-06-07 | 编码架构下实体类对象的转换方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210638967.7A CN114895912A (zh) | 2022-06-07 | 2022-06-07 | 编码架构下实体类对象的转换方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114895912A true CN114895912A (zh) | 2022-08-12 |
Family
ID=82728961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210638967.7A Pending CN114895912A (zh) | 2022-06-07 | 2022-06-07 | 编码架构下实体类对象的转换方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114895912A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686459A (zh) * | 2022-10-31 | 2023-02-03 | 北京力控元通科技有限公司 | 基于Java语言的模型生成方法、装置、设备及可读存储介质 |
CN117742780A (zh) * | 2023-12-04 | 2024-03-22 | 深圳市道旅旅游科技股份有限公司 | 不同对象关系映射下的模型迁移方法、装置、介质和设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108627A1 (en) * | 2003-11-13 | 2005-05-19 | International Business Machines Corporation | Serialization and preservation of objects |
US20060143597A1 (en) * | 2004-12-29 | 2006-06-29 | Eyal Alaluf | Method and a software product for adapting a .NET framework compliant reflection mechanism to a java environment |
US20140040860A1 (en) * | 2012-07-31 | 2014-02-06 | Joseph D. Darcy | Efficient and Expansive Conversions Between Reference and Primitive |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
CN113176877A (zh) * | 2021-05-27 | 2021-07-27 | 北京格瑞拉科技有限公司 | 实体类生成方法、装置及存储介质 |
CN113296776A (zh) * | 2021-06-18 | 2021-08-24 | 西安理工大学 | 对象模型的代码转换方法、装置、存储介质及电子设备 |
-
2022
- 2022-06-07 CN CN202210638967.7A patent/CN114895912A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108627A1 (en) * | 2003-11-13 | 2005-05-19 | International Business Machines Corporation | Serialization and preservation of objects |
US20060143597A1 (en) * | 2004-12-29 | 2006-06-29 | Eyal Alaluf | Method and a software product for adapting a .NET framework compliant reflection mechanism to a java environment |
US20140040860A1 (en) * | 2012-07-31 | 2014-02-06 | Joseph D. Darcy | Efficient and Expansive Conversions Between Reference and Primitive |
CN111026777A (zh) * | 2019-12-13 | 2020-04-17 | 中国南方电网有限责任公司 | 实体类代码生成方法、装置、计算机设备及存储介质 |
CN113176877A (zh) * | 2021-05-27 | 2021-07-27 | 北京格瑞拉科技有限公司 | 实体类生成方法、装置及存储介质 |
CN113296776A (zh) * | 2021-06-18 | 2021-08-24 | 西安理工大学 | 对象模型的代码转换方法、装置、存储介质及电子设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686459A (zh) * | 2022-10-31 | 2023-02-03 | 北京力控元通科技有限公司 | 基于Java语言的模型生成方法、装置、设备及可读存储介质 |
CN115686459B (zh) * | 2022-10-31 | 2023-07-25 | 北京力控元通科技有限公司 | 基于Java语言的模型生成方法、装置、设备及可读存储介质 |
CN117742780A (zh) * | 2023-12-04 | 2024-03-22 | 深圳市道旅旅游科技股份有限公司 | 不同对象关系映射下的模型迁移方法、装置、介质和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114895912A (zh) | 编码架构下实体类对象的转换方法、装置、设备及介质 | |
CN109359939A (zh) | 业务数据校验方法、装置、计算机设备和存储介质 | |
CN110399309B (zh) | 一种测试数据生成方法及装置 | |
CN112668041A (zh) | 单证文件的生成方法、装置、计算机设备和存储介质 | |
CN111881024A (zh) | 一种接口测试脚本的确定方法、装置、设备及存储介质 | |
CN112613288A (zh) | 结算单生成方法、装置、计算机设备和存储介质 | |
CN107122203B (zh) | 一种配置文件的设置方法及装置 | |
CN109063091A (zh) | 混合编码的数据迁移方法、数据迁移装置和存储介质 | |
Jin-Hua et al. | The w-model for testing software product lines | |
CN113900955A (zh) | 自动化测试方法、装置、设备及存储介质 | |
CN113609011B (zh) | 一种保险产品工厂的测试方法、装置、介质和设备 | |
US10078628B2 (en) | Annotation-based dependency calculations | |
CN111209283A (zh) | 一种数据处理方法及装置 | |
CN116599881A (zh) | 云平台租户建模测试的方法、装置、设备及存储介质 | |
CN116541278A (zh) | 一种单元测试用例生成方法、装置、设备及存储介质 | |
CN115809308A (zh) | 实现实有人口数据自动归类与采集的方法、装置、电子设备 | |
CN112486481B (zh) | 多模块分层架构实现方法、装置、电子设备及介质 | |
CN114996758A (zh) | 一种数据脱敏方法、装置及电子设备 | |
CN112580334A (zh) | 一种文案处理方法、装置、服务器及存储介质 | |
CN112836033A (zh) | 业务模型的管理方法、装置、设备及存储介质 | |
CN117390455B (zh) | 数据处理方法和装置、存储介质及电子设备 | |
CN109002287B (zh) | 云数据系统中软件的管理方法和装置 | |
CN111897714B (zh) | 一种基于辅助测试工具的测试数据沉淀方法、装置及系统 | |
CN116225957A (zh) | 软件测试方法及其装置、电子设备及存储介质 | |
CN116340187A (zh) | 规则引擎迁移测试方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |