生成类的扩展方法、装置、存储介质及电子设备与流程

文档序号:33712742发布日期:2023-04-01 00:36阅读:24来源:国知局
生成类的扩展方法、装置、存储介质及电子设备与流程

1.本发明涉及计算机技术领域,尤其涉及一种生成类的扩展方法、装置、存储介质及电子设备。


背景技术:

2.根据微服务的十二要素理论,一款好的微服务框架应该支持多语言场景,但是每个微服务开发公司均自研一款支持大部分主流语言的框架不太现实,因此,选择大厂商已有的微服务框架更符合实际。其中,grpc是一款微服务rpc框架,大部分微服务开发公司在开发微服务时具有自己所使用的主要语言或者说大部分微服务都是使用某种语言,比如java。但是原生的grpc的stub类,针对习惯使用java的开发者而言,不论是客户端和服务端在使用api设计都不太友好,开发研发效率低。


技术实现要素:

3.有鉴于此,本发明提供了一种生成类的扩展方法、装置、存储介质及电子设备,以至少部分解决上述问题。
4.根据本发明的第一方面,提供了一种生成类的扩展方法,该方法包括:
5.创建数据结构文件,其中,数据结构文件包括第一类信息和与第一类信息对应的第一服务信息;
6.对数据结构文件进行编译,生成参数转换源文件;
7.对参数转换源文件进行编译,生成参数转换类文件;
8.加载参数转换类文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息;
9.根据第二类信息和第二服务信息,生成中间源文件;
10.根据预设调用方法,调用中间源文件,生成目标源文件。
11.可选地,加载参数转换类文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息,包括:
12.创建类加载器;
13.通过类加载器解析并筛选出第二类信息和与第二类信息对应的第二服务信息。
14.可选地,通过类加载器解析并筛选出第二类信息和与第二类信息对应的第二服务信息,包括:
15.通过类加载器分析参数转换类文件,得到待筛选类信息和与待筛选类信息对应的待筛选服务信息;
16.根据预设筛选规则,从待筛选类信息中筛选出目标类信息;
17.根据预设类命名规则,从目标类信息中提取命名信息,得到第二类信息;
18.从待筛选服务信息中筛选出与第二类信息对应的目标服务信息作为第二服务信息。
19.可选地,根据预设筛选规则,从待筛选类信息中筛选出目标类信息,包括:
20.从待筛选类信息中筛选出后缀以第一预设类名结尾且包括第一预设字符的待筛选类信息作为目标类信息。
21.可选地,根据预设类命名规则,从目标类信息中提取命名信息,得到第二类信息,包括;
22.将目标类信息中的第一预设类名以前的至少一个字符作为第二类信息的类名,并设置第二类信息的类属性与目标类信息的类属性相同,得到第二类信息。
23.可选地,该方法还包括:
24.若根据预设调用方法调用中间源文件成功,根据参数转换类文件的服务信息命名规则,生成服务信息名称,并将服务信息名称和调用成功的中间源文件作为目标源文件。
25.可选地,该方法还包括:
26.若根据预设调用方法调用中间源文件失败,生成调用异常信息并通过服务端与客户端之间的远程过程调用协议发送至客户端。
27.根据本发明的第二方面,提供了一种生成类的扩展装置,该装置包括:数据结构模块、第一编译模块、第二编译模块、加载解析模块、第一生成模块和第二生成模块;其中,
28.数据结构模块,用于创建数据结构文件,其中,数据结构文件包括第一类信息和与第一类信息对应的第一服务信息;
29.第一编译模块,用于对数据结构文件进行编译,生成参数转换源文件;
30.第二编译模块,用于对参数转换源文件进行编译,生成参数转换类文件;
31.加载解析模块,用于加载参数转换类文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息;
32.第一生成模块,用于根据第二类信息和第二服务信息,生成中间源文件;
33.第二生成模块,用于根据预设调用方法,调用中间源文件,生成目标源文件。
34.根据本发明的第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一方法的实施例。
35.根据本发明的第四方面,提供了一种电子设备,电子设备包括存储器以及处理器,存储器上用于存储计算机可执行程序,处理器用于运行计算机可执行程序以实现上述任一方法的实施例。
36.本发明提供的生成类的扩展方法和装置、及存储介质和电子设备,创建数据结构文件,其中,数据结构文件包括第一类信息和与第一类信息对应的第一服务信息;对数据结构文件进行编译,生成参数转换源文件;对参数转换源文件进行编译,生成参数转换类文件;加载参数转换类文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息;根据第二类信息和第二服务信息,生成中间源文件;根据预设调用方法,调用中间源文件,生成目标源文件,这样能够在不增加编译复杂度的同时,为客户端获得如调用本地服务(方法)相同的调用体验。
37.下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
38.通过结合附图对本发明实施例进行更详细的描述,本发明的上述以及其他目的、
特征和优势将变得更加明显。附图用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与本发明实施例一起用于解释本发明,并不构成对本发明的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
39.图1是本发明实施例提供的生成类的扩展方法的实施例一的一流程示意图;
40.图2a是本发明实施例提供的生成类的扩展方法的实施例一的另一流程示意图;
41.图2b是本发明实施例提供的生成类的扩展方法的实施例一的又一流程示意图;
42.图3a是本发明实施例提供的生成类的扩展方法的实施例二的一流程示意图;
43.图3b是本发明实施例提供的生成类的扩展方法的实施例二的另一流程示意图;
44.图4是本发明实施例提供的生成类的扩展装置的结构框图;
45.图5是本发明一示例性实施例提供的电子设备的结构示意图。
具体实施方式
46.下面,将参考附图详细地描述根据本发明的示例实施例。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是本发明的全部实施例,应理解,本发明不受这里描述的示例实施例的限制。
47.应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
48.本领域技术人员可以理解,本发明实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
49.还应理解,在本发明实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
50.还应理解,对于本发明实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
51.另外,本发明中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本发明中字符“/”,一般表示前后关联对象是一种“或”的关系。
52.还应理解,本发明对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
53.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
54.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
55.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被视为说明书的一部分。
56.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
57.本发明实施例可以应用于终端设备、计算机系统、服务器等电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统、服务器等电
子设备一起使用的众所周知的终端设备、计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
58.终端设备、计算机系统、服务器等电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
59.示例性方法
60.图1是本发明实施例提供的生成类的扩展方法的实施例一的一流程示意图。本实施例可应用在电子设备上,如图1所示,该方法包括以下步骤:
61.步骤s101:创建数据结构文件,其中,数据结构文件包括第一类信息和与第一类信息对应的第一服务信息;
62.步骤s102:对数据结构文件进行编译,生成参数转换源文件;
63.步骤s103:对参数转换源文件进行编译,生成参数转换类文件;
64.步骤s104:加载参数转换类文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息;
65.可选地,如图2a所示,步骤s104具体包括:
66.步骤s1041:创建类加载器;
67.步骤s1042:通过类加载器解析并筛选出第二类信息和与第二类信息对应的第二服务信息。
68.可选地,如图2b所示,步骤s1042具体包括:
69.步骤10421:通过类加载器分析参数转换类文件,得到待筛选类信息和与待筛选类信息对应的待筛选服务信息;
70.步骤10422:根据预设筛选规则,从待筛选类信息中筛选出目标类信息;
71.其中,预设筛选规则本领域技术人员可以根据实际需要灵活选择,此处不做限定。例如:预设筛选规则可以为筛选出后缀以第一预设类名结尾且包括第一预设字符的待筛选类信息。
72.具体地,步骤10422可包括:从待筛选类信息中筛选出后缀以第一预设类名结尾且包括第一预设字符的待筛选类信息作为目标类信息。
73.在本发明实施例中,第一预设类名和第一预设字符是根据采用的微服务框架和语言源代码生成技术设定的,以在grpc微服务框架下基于java源代码生成技术生成类为例,第一预设类名可设定为implbase,第一预设字符可设定为grpc,本领域技术人员可以根据实际情况灵活设定第一预设类名和第一预设字符,此处不做限定。
74.步骤10423:根据预设类命名规则,从目标类信息中提取命名信息,得到第二类信息;
75.可选地,步骤10423具体包括;
76.将目标类信息中的第一预设类名以前的至少一个字符作为第二类信息的类名,并设置第二类信息的类属性与目标类信息的类属性相同,得到第二类信息。
77.步骤10424:从待筛选服务信息中筛选出与第二类信息对应的目标服务信息作为第二服务信息。
78.步骤s105:根据第二类信息和第二服务信息,生成中间源文件;
79.步骤s106:根据预设调用方法,调用中间源文件,生成目标源文件。
80.在根据预设调用方法调用中间源文件时,若根据预设调用方法调用中间源文件成功,根据参数转换类文件的服务信息命名规则,生成服务信息名称,并将服务信息名称和调用成功的中间源文件作为目标源文件;若根据预设调用方法调用中间源文件失败,生成调用异常信息并通过服务端与客户端之间的远程过程调用协议发送至客户端。
81.需要说明的是,步骤s101、步骤s102、步骤s106是在第一项目中进行的,步骤s103、步骤s104、s105是在第二项目中进行的。以在grpc微服务框架下基于java源代码生成技术生成类为例,第一项目是指maven项目,第二项目是指java项目。本领域技术人员可以根据实际需要进行选择,此处不做限定。
82.本发明提供的生成类的扩展方法,首先将第一项目中的服务信息在第二项目中进行编译、解析、筛选和重命名,其次在第一项目中调用该服务信息,使其生成符合第二项目中的服务信息的调用方法的服务信息,能够在不增加编译复杂度的同时,为客户端获得如调用本地服务(方法)相同的调用体验。
83.为了使本领域技术人员能够更为清楚地理解本发明提供的生成类的扩展方法,以在grpc微服务框架下基于java源代码生成技术生成类为例对本发明提供的生成类的扩展方法进行详细介绍。
84.本发明实施例涉及的技术术语及缩略如下:
85.grpc:是由google开发的一个高性能、通用的开源rpc框架,主要面向移动应用开发且基于http/2协议标准而设计,同时支持大多数流行的编程语言。
86.rpc:remote procedure call,远程过程调用,是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
87.jdk:java development kit,是java语言的软件开发工具包(sdk),其给开发者提供的开发工具箱,它除了包括完整的jre(java runtime environment),java运行环境,还包含了其他供开发者使用的工具包。
88.图3a是本发明实施例提供的生成类的扩展方法的实施例二的一流程示意图。图3b是本发明实施例提供的生成类的扩展方法的实施例二的另一流程示意图。本实施例可应用在电子设备上,如图3a和图3b所示,该方法包括以下步骤:
89.步骤s201:根据业务需求,创建proto文件(即数据结构文件),其中,proto文件中定义有message信息(第一类信息)和与message信息对应的service信息(即第一服务信息);
90.其中,message信息用于定义入参或者出参的类信息,service用于定义提供给rpc服务的方法。
91.在本发明实施例中,proto文件创建完成后,会将其保存到指定的目录中。以将proto文件保存在maven项目中为例,一般默认保存在/src/main/proto目录中,本领域技术
人员可以根据实际需要灵活选择proto文件的保存位置,此处不做限定。
92.步骤s202:对proto文件进行编译,生成stub源文件(即参数转换源文件,也可称为stub源代码);
93.在本发明实施例中,可以使用protobuf编译器对proto文件进行编译生成stub源文件,并将stub源文件保存到指定的目录中。以将stub源文件保存在maven项目中为例,一般默认保存在target/generated-sources/protob uf/grpc-java和target/generated-sources/protobuf/java目录中。
94.步骤s203:对stub源文件进行编译,生成stub class文件(即参数转换类文件);
95.在本发明实施例中,可以使用jdk中的javacompiler编译器对stub源文件进行编译生成stub class文件,并将stub class文件保存到指定的java目录中。
96.现有技术中,通常在maven项目中(即maven的生命周期中)使用正则表达式直接对stub源文件进行解析,但由于采用正则表达式的方式直接解析stub源文件容易出错,且不能对stub源文件进行完全的解析,如存在部分stub源文件无法被解析的情况,而采用人工的方式解析stub源文件耗时且费力,因此,本发明实施例使用jdk自带的javacompiler编译器自动对stub源文件进行编译,跳出maven的生命周期,生成stub class文件。这种方式能够实现自动对stub源文件进行完全的解析,无需人工干预,易于实现,且解析结果准确率高。
97.步骤s204:加载stub class文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息;
98.在本发明实施例中,可以使用java加载器加载stub class文件到内存中,然后解析并筛选出第二类信息和与第二类信息对应的第二服务信息。
99.在一种具体实现方式中,java加载器加载stub class文件后,首先解析出stub class文件中类信息,并从类信息中筛选出符合预设规则的第二类信息,同时采用java反射技术解析出stub class文件中的方法集,然后根据第二类信息,从解析出的stub class文件中的方法集中筛选出与第二类信息对应的第二服务信息,从而获得第二类信息和与第二类信息对应的第二服务信息。
100.在一种可选实施方式中,步骤s204可具体包括:
101.步骤s2041:创建java加载器(类加载器);
102.步骤s2042:通过java加载器解析并筛选出第二类信息和与第二类信息对应的第二服务信息。
103.其中,步骤s2042可具体包括:
104.步骤20421:通过java加载器分析stub class文件,得到待筛选类信息和与待筛选类信息对应的待筛选服务信息;
105.具体地,创建java加载器后,java加载器加载stub class文件,首先解析stub class文件得到待筛选类信息,同时采用java反射技术解析出stub class文件中的方法集(即待筛选服务信息)。
106.步骤20422:从待筛选类信息中筛选出后缀以implbase(即第一预设类名)结尾且包括grpc(即第一预设字符)的待筛选类信息作为目标类信息;
107.其中,目标类信息为从stub class文件中解析出的待筛选类信息中以implbase结
尾且包括grpc的类信息。
108.在本发明实施例中,由于是以在grpc微服务框架下基于java源代码生成技术生成类为例,因此,第一预设类名为implbase,第一预设字符为grpc,若采用其他微服务框架和其他语言源代码生成技术,本领域技术人员可以根据实际情况灵活设定第一预设类名和第一预设字符,此处不做限定。
109.步骤20423:将目标类信息中的implbase以前的至少一个字符作为第二类信息的类名,并设置第二类信息的类属性与目标类信息的类属性相同,得到第二类信息;
110.步骤20424:从待筛选服务信息中筛选出与第二类信息对应的目标服务信息作为第二服务信息。
111.步骤s205:根据第二类信息和第二服务信息,生成中间源文件;
112.具体地,从第二类信息中获取到类名(即与第二类信息对应的第二服务信息的方法名)、入参类型和出参类型,生成样式如public abstract《出参类》方法名(入参类参数)的中间源文件(即抽象方法)。
113.步骤s206:根据预设调用方法,调用中间源文件,生成目标源文件。
114.具体地,首先调用中间源文件,入参为中间源文件的入参;其次将调用的中间源文件写入streamobserver对象中;调用streamobserver对象的oncompleted完成本次调用。
115.在调用streamobserver对象的oncompleted完成本次调用后,具体存在如下两种情况:
116.第一种情况:若根据预设调用方法调用中间源文件成功,根据参数转换类文件的服务信息命名规则,生成服务信息名称,并将服务信息名称和调用成功的中间源文件作为目标源文件;
117.具体地,从第二类信息中获取到类名(即与第二类信息对应的第二服务信息的方法名)、入参类型和出参类型,生成样式如public listenablefuture《出参类》方法名async(入参类参数)的第二服务信息,以用于客户端发起异步调用使用,其中的代码块为空。
118.第二种情况:若根据预设调用方法调用中间源文件失败,生成调用异常信息并通过服务端与客户端之间的远程过程调用协议发送至客户端。
119.具体地,若根据预设调用方法调用中间源文件失败,服务端抛出异常堆栈信息(即调用异常信息),通过grpc响应header的方式,发送给客户端。
120.需要说明的是,步骤s206是在maven项目中进行的,其作用是为了使在java项目中生成的中间源文件能够在maven项目中按照调用java项目中的中间源文件的方法进行调用,以获得如调用本地方法相同的rpc调用体验。另外,步骤s201、步骤s202是在maven项目中进行的,步骤s203、步骤s204、s205是在java项目中进行的。
121.本发明提供的生成类的扩展方法,使用jdk自带的javacompiler编译器对stub源文件进行编译,这样可以在不破坏maven的编译生命周期的同时,为后面使用独立的类加载器加载并分析stub class文件提供遍历;且扩展类可以既作为服务端实现类的抽象类,也可以作为客户端调用后端服务的门面,更符合java工程师面向接口编程习惯,同时方便客户端使用动态代理技术去扩展。另外,本发明提供的生成类的扩展方法,通过和apache maven项目管理软件的集成,把整个过程放到generate_sourc es阶段执行,可以在不增加编译复杂度的同时,为客户端获得如调用本地服务(方法)相同的rpc调用体验。
122.需要说明的是,本发明中的第一服务信息也可称为第一服务方法,第二服务信息也可以称为第二服务方法,也就是说,服务信息实质就是指实现对应服务功能的方法。
123.示例性装置
124.图4是本发明实施例提供的生成类的扩展装置的结构框图。如图4所示,该装置包括:数据结构模块30、第一编译模块31、第二编译模块32、加载解析模块33、第一生成模块34和第二生成模块35;其中,
125.数据结构模块30,用于创建数据结构文件,其中,数据结构文件包括第一类信息和与第一类信息对应的第一服务信息;
126.第一编译模块31,用于对数据结构文件进行编译,生成参数转换源文件;
127.第二编译模块32,用于对参数转换源文件进行编译,生成参数转换类文件;
128.加载解析模块33,用于加载参数转换类文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息;
129.第一生成模块34,用于根据第二类信息和第二服务信息,生成中间源文件;
130.第二生成模块35,用于根据预设调用方法,调用中间源文件,生成目标源文件。
131.可选地,加载解析模块33具体用于:创建类加载器;通过类加载器解析并筛选出第二类信息和与第二类信息对应的第二服务信息。
132.可选地,加载解析模块33进一步包括:解析模块(图中未示出)、第一筛选模块(图中未示出)、命名模块(图中未示出)和第二筛选模块(图中未示出);其中,解析模块,用于通过类加载器分析参数转换类文件,得到待筛选类信息和与待筛选类信息对应的待筛选服务信息;第一筛选模块,用于根据预设筛选规则,从待筛选类信息中筛选出目标类信息;命名模块,用于根据预设类命名规则,从目标类信息中提取命名信息,得到第二类信息;第二筛选模块,用于从待筛选服务信息中筛选出与第二类信息对应的目标服务信息作为第二服务信息。
133.可选地,第一筛选模块,具体用于从待筛选类信息中筛选出后缀以第一预设类名结尾且包括第一预设字符的待筛选类信息作为目标类信息。
134.在本发明实施例中,第一预设类名和第一预设字符是根据采用的微服务框架和语言源代码生成技术设定的,以在grpc微服务框架下基于java源代码生成技术生成类为例,第一预设类名可设定为implbase,第一预设字符可设定为grpc,本领域技术人员可以根据实际情况灵活设定第一预设类名和第一预设字符,此处不做限定。
135.可选地,命名模块,具体用于将目标类信息中的第一预设类名以前的至少一个字符作为第二类信息的类名,并设置第二类信息的类属性与目标类信息的类属性相同,得到第二类信息。
136.可选地,第二生成模块35,具体用于若根据预设调用方法调用中间源文件成功,根据参数转换类文件的服务信息命名规则,生成服务信息名称,并将服务信息名称和调用成功的中间源文件作为目标源文件;若根据预设调用方法调用中间源文件失败,生成调用异常信息并通过服务端与客户端之间的远程过程调用协议发送至客户端。
137.需要说明的是,本实施例的生成类的扩展装置与本发明提供的生成类的扩展方法相对应,其他描述均可参照对本发明提供的生成类的扩展方法的描述,此处不再赘述。
138.本发明提供的生成类的扩展装置,创建数据结构文件,其中,数据结构文件包括第
一类信息和与第一类信息对应的第一服务信息;对数据结构文件进行编译,生成参数转换源文件;对参数转换源文件进行编译,生成参数转换类文件;加载参数转换类文件,解析并筛选出第二类信息和与第二类信息对应的第二服务信息;根据第二类信息和第二服务信息,生成中间源文件;根据预设调用方法,调用中间源文件,生成目标源文件,这样能够在不增加编译复杂度的同时,为客户端获得如调用本地服务(方法)相同的调用体验。
139.示例性电子设备
140.图5是本发明一示例性实施例提供的电子设备的结构示意图。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。如图5所示,电子设备40包括一个或多个处理器41和存储器42。
141.处理器41可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
142.存储器42可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器41可以运行所述程序指令,以实现上文所述的本发明的各个实施例的软件程序的生成类的扩展方法以及/或者其他期望的功能。在一个示例中,电子设备还可以包括:输入装置43和输出装置44,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
143.此外,该输入装置43还可以包括例如键盘、鼠标等等。该输出装置44可以向外部输出各种信息。该输出装置44可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
144.当然,为了简化,图5中仅示出了该电子设备中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
145.示例性计算机程序产品和计算机可读存储介质
146.除了上述方法和设备以外,本发明的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的生成类的扩展方法中的步骤。
147.所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本发明实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
148.此外,本发明的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本发明各种实施例的生成类的扩展方法中的步骤。
149.所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
150.以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,在本发明中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本发明的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本发明为必须采用上述具体的细节来实现。
151.本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
152.本发明中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
153.可能以许多方式来实现本发明的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
154.还需要指出的是,在本发明的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本发明的等效方案。提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本发明。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本发明的范围。因此,本发明不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
155.为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本发明的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1