CN104461560B - 一种信息类实例的转换方法 - Google Patents
一种信息类实例的转换方法 Download PDFInfo
- Publication number
- CN104461560B CN104461560B CN201410809262.2A CN201410809262A CN104461560B CN 104461560 B CN104461560 B CN 104461560B CN 201410809262 A CN201410809262 A CN 201410809262A CN 104461560 B CN104461560 B CN 104461560B
- Authority
- CN
- China
- Prior art keywords
- class
- server
- client
- info class
- information
- 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.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种信息类实例的转换方法,包括:根据待转换的服务端信息类实例,确定一个客户端本地目标信息类,所述服务端信息类与所述客户端本地目标信息类具有至少一个相同属性;获取所述服务端信息类实例的类型定义信息,以及所述客户端本地目标信息类的类型定义信息;按照所述客户端本地目标信息类的类型定义信息,创建一个新实例;对于所述新实例中的每个属性,如果所述服务端信息类实例的类型定义信息中有相同属性,则从所述服务端信息类实例中获取该相同属性的属性值,并赋值给所述新实例中的该属性;将所述新实例作为所述服务端信息类实例的客户端实例。本发明可以快速、准确地实现服务端信息类实例在客户端本地的转换。
Description
技术领域
本发明涉及计算机应用技术,特别是涉及一种信息类实例的转换方法。
背景技术
目前,在常规的C/S系统开发中,通常需要基于在Web端服务和远程客户电脑上安装本地客户端来实现集中部署和本地使用。这种架构下,对于开发人员看到的源代码,服务器端和客户端在同一个源代码工程中,使用同一套实体类来进行数据传输,但是因为部署的时候要分别部署在计算机机房和客户的电脑上,所以使用web服务后,同样的实体会被分成服务端实体和客户端实体,开发人员在使用中需要采用人工编写转换程序的方式,在客户端侧将服务端的信息类实例转换为客户端的信息类实例。
上述人工编写的转换程序需要包括以下步骤:
步骤a1、调用web服务。
步骤a2、从该web服务中获取源信息类实例。
步骤a3、根据源信息类实例,在本地创建相应的实例。
这里,由于新创建的实例是根据源信息类实例创建的,因此,将具有源信息类实例的部分属性。
步骤a4、对所创建的实例中的属性进行一一赋值,得到所述源信息类实例的客户端同类实例。
从上述转换程序中可以看出,在步骤a4程序员需要对所创建的实例中的属性进行一一赋值。由于实体类的属性数量通常较多,采用人工编写赋值代码,将会导致误码率高、难排查且编码时间长等问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种信息类实例的转换方法,该方法可以快速、准确地实现服务端信息类实例在客户端本地的转换。
为了达到上述目的,本发明提出的技术方案为:
一种信息类实例的转换方法,其特征在于,包括:
根据待转换的服务端信息类实例,确定一个客户端本地目标信息类,所述服务端信息类与所述客户端本地目标信息类具有至少一个相同属性;
获取所述服务端信息类实例的类型定义信息,以及所述客户端本地目标信息类的类型定义信息;
按照所述客户端本地目标信息类的类型定义信息,创建一个新实例;
对于所述新实例中的每个属性,如果所述服务端信息类实例的类型定义信息中有相同属性,则从所述服务端信息类实例中获取该相同属性的属性值,并赋值给所述新实例中的该属性;
将所述新实例作为所述服务端信息类实例的客户端实例。
综上所述,本发明提出的信息类实例的转换方法,在客户端侧,确定出一个与待转换服务端信息类实例具有一些相同属性的信息类,利用该信息类生成一个空实例,然后遍历该实例中的各属性,将从源类型的实例中获取到的相同属性的取值赋值给该实例的属性,这样,在客户端本地生成的实例即包含了待转换服务端信息类实例中的相同属性信息,从而可以实现服务端的信息类实例到客户端的信息类实例的快速、准确转换。
附图说明
图1为本发明实施例一的流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。
本发明的核心思想是:先在客户端侧,确定出一个与待转换服务端信息类实例具有一些相同属性的信息类,然后分别获取服务端信息类实例的类型定义信息和客户端本地目标信息类的类型定义信息,可以自动化地基于这些信息,在客户端生成一个具有服务端信息类实例的属性信息的目标信息类实例,也就是说,实现了在客户端进行服务端信息类实例的转换,而该转换过程由于不需要采用人工方式对各属性进行赋值,因此,转换效率高且可以确保准确度。
图1为本发明实施例一的流程示意图,如图1所示,该实施例主要包括:
步骤101、根据待转换的服务端信息类实例,确定一个客户端本地目标信息类,所述服务端信息类与所述客户端本地目标信息类具有至少一个相同属性。
本步骤,考虑到无法直接根据服务端信息类实例在客户端本地生成相应的实例,因此,这里需要在客户端侧确定出一个客户端本地目标信息类,该信息类将与待转换服务端信息类实例具有一些相同属性,以便此后基于此客户端本地目标信息类在客户端侧利用该本地类建立一个空实例,利用该空实例,实现服务端信息类实例在本地的转换。
步骤102、获取所述服务端信息类实例的类型定义信息以及所述客户端本地目标信息类的类型定义信息。
这里,所述客户端本地目标信息类为带默认构造函数的空实体类。
本步骤中,需要先获取待转换的服务端信息类实例的类型定义信息,以及客户端本地目标信息类的类型定义信息,以便基于这些类型定义信息可以在客户端本地建立相应的实例。
较佳地,可以采用反射的方式,获取待转换的服务端信息类实例的类型定义信息。
较佳地,采用反射的方式,获取客户端本地目标信息类的类型定义信息。
具体地,如何采用反射的方式获取上述类型定义信息,为本领域技术人员所掌握,在此不再赘述。
步骤103、按照所述客户端本地目标信息类的类型定义信息,创建一个新实例。
这里,由于最终是要在客户端得到一个具有服务端信息类实例的类型信息的目标信息类实例,因此,这里需要基于客户端本地目标信息类的类型定义信息,创建相应的空实例,然后在步骤104中对该实例中的属性按照服务端信息类实例的类型信息进行赋值即可完成服务端信息类实例的转换。
步骤104、对于所述新实例中的每个属性,如果所述服务端信息类实例的类型定义信息中有相同属性,则从所述服务端信息类实例中获取该相同属性的属性值,并赋值给所述新实例中的该属性。
本步骤中,需要遍历所述目标信息类实例的属性列表,对于其中的各属性,使用属性名称在服务端信息类实例的类型定义信息中查找,如果找不到该属性,则说明服务端信息类中不具备该属性,则目标信息类实例不需要赋值该属性,直接跳过即可;如果可以找到该属性,则将服务端信息类实例中该属性的具体属性值取出,并赋值到新创建的目标信息类实例上。
本步骤中,考虑到最终需要将服务端信息类实例上的信息转移到的客户端本地目标信息类的实例中去,也就是说,最终输出的是客户端本地目标信息类的实例,因此,这里只要保证客户端本地目标信息类上的属性如果在服务端信息类上有,则均获取到即可。故本步骤中,将以客户端本地目标信息类中的属性列表为基准,进行属性赋值。
通过步骤104,可以实现对新实例属性的快速赋值,从而可以避免人工赋值所存在的误码率高效率低的问题。
步骤105、将所述新实例作为所述服务端信息类实例的客户端实例。
在步骤104中遍历目标信息类实例的属性列表完成属性赋值后,即可得到所述服务端信息类实例的转换结果,在本地完成对服务端信息类实例的自动转换。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种信息类实例的转换方法,其特征在于,包括:
在客户端侧,根据待转换的服务端信息类实例,确定一个客户端本地目标信息类,所述服务端信息类与所述客户端本地目标信息类具有至少一个相同属性;
获取所述服务端信息类实例的类型定义信息,以及所述客户端本地目标信息类的类型定义信息;
按照所述客户端本地目标信息类的类型定义信息,创建一个新实例;
对于所述新实例中的每个属性,如果所述服务端信息类实例的类型定义信息中有相同属性,则从所述服务端信息类实例中获取该相同属性的属性值,并赋值给所述新实例中的该属性;
将所述新实例作为所述服务端信息类实例的客户端实例。
2.根据权利要求1所述的方法,其特征在于,采用反射的方式,获取待转换的服务端信息类实例的类型定义信息。
3.根据权利要求1所述的方法,其特征在于,采用反射的方式,获取客户端本地目标信息类的类型定义信息。
4.根据权利要求1所述的方法,其特征在于,所述客户端本地目标信息类为带默认构造函数的空实体类。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410809262.2A CN104461560B (zh) | 2014-12-23 | 2014-12-23 | 一种信息类实例的转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410809262.2A CN104461560B (zh) | 2014-12-23 | 2014-12-23 | 一种信息类实例的转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461560A CN104461560A (zh) | 2015-03-25 |
CN104461560B true CN104461560B (zh) | 2018-06-15 |
Family
ID=52907671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410809262.2A Active CN104461560B (zh) | 2014-12-23 | 2014-12-23 | 一种信息类实例的转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461560B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196813A (zh) * | 2007-12-26 | 2008-06-11 | 上海科泰世纪科技有限公司 | 计算机软件系统中基于构件接口实现事件回调的方法 |
CN102736980A (zh) * | 2012-06-29 | 2012-10-17 | 南京大学 | 一种面向Java程序的随机测试用例生成方法 |
CN102760096A (zh) * | 2011-04-27 | 2012-10-31 | 阿里巴巴集团控股有限公司 | 测试用数据的生成方法、单元测试方法以及单元测试系统 |
CN103294462A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 对象映射处理方法、映射处理器和对象映射处理系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005301985A (ja) * | 2004-02-26 | 2005-10-27 | Ricoh Co Ltd | 情報処理装置、オブジェクト生成方法、オブジェクト変換方法、オブジェクト生成プログラム、オブジェクト変換プログラム及び記録媒体 |
-
2014
- 2014-12-23 CN CN201410809262.2A patent/CN104461560B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196813A (zh) * | 2007-12-26 | 2008-06-11 | 上海科泰世纪科技有限公司 | 计算机软件系统中基于构件接口实现事件回调的方法 |
CN102760096A (zh) * | 2011-04-27 | 2012-10-31 | 阿里巴巴集团控股有限公司 | 测试用数据的生成方法、单元测试方法以及单元测试系统 |
CN103294462A (zh) * | 2012-03-05 | 2013-09-11 | 阿里巴巴集团控股有限公司 | 对象映射处理方法、映射处理器和对象映射处理系统 |
CN102736980A (zh) * | 2012-06-29 | 2012-10-17 | 南京大学 | 一种面向Java程序的随机测试用例生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104461560A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6163607B2 (ja) | イベント知識データベースの構築方法および装置 | |
US20180307978A1 (en) | Multi-Modal Construction of Deep Learning Networks | |
CN108989885A (zh) | 视频文件转码系统、分割方法、转码方法及装置 | |
CN110224878A (zh) | 网关配置更新方法、装置和服务器 | |
CN105051687B (zh) | 应用部署方法和设备 | |
CN110704749B (zh) | 推荐引擎定制系统、推荐方法及推荐系统、电子设备 | |
US8756407B2 (en) | Configuration rule prototyping tool | |
CN104572182B (zh) | 一种流应用的配置方法、节点及流计算系统 | |
CN103177329A (zh) | 业务对象处理中基于规则的确定和验证 | |
US9152415B2 (en) | Abstracting benefit rules from computer code | |
CN106506302B (zh) | 支持动态modbus协议映射的通信装置 | |
CN105446952B (zh) | 用于处理语义片段的方法和系统 | |
CN111124382A (zh) | Java中的属性赋值方法、装置及服务器 | |
CN114997414B (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US9471640B2 (en) | Automatic conversion of units of measure during data stream processing | |
CN107015831A (zh) | 一种基于服务器端升级的客户端升级管理方法及系统 | |
CN104461560B (zh) | 一种信息类实例的转换方法 | |
CN110381056A (zh) | 基于Netty的私有协议编解码方法及装置 | |
CN106612309B (zh) | 配置文件的更新方法、装置及系统 | |
CN104461557B (zh) | Puppet配置数据的处理方法及装置 | |
TWI643077B (zh) | 適應性調整資料庫結構之方法與調整裝置 | |
KR101698184B1 (ko) | 홈 네트워크 가상화 장치 및 그 방법 | |
CN104267967B (zh) | 软件的程序代码的生成方法及装置 | |
CN106561030A (zh) | 一种遥感图像处理Web服务动态生成方法 | |
CN105068793A (zh) | 生成业务逻辑关系图以及实现业务应用的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |