一种对象的动态调用方法、装置及电子设备制造方法及图纸

技术编号:36557554 阅读:16 留言:0更新日期:2023-02-04 17:12
本申请提供了一种对象的动态调用方法、装置及电子设备,该方法包括:响应于针对第一执行对象方法的动态调用指令,确定是否已生成与动态调用指令中的类标识对应的目标源码文件;若未生成目标源码文件,基于类标识获取目标类中的所有可执行方法;利用预设组织模板将所有可执行方法组织在一起,生成第二执行对象方法;基于第二执行对象方法、业务方法的方法名称、业务方法对应的目标对象的对象名称生成目标源码文件;编译并执行目标源码文件,调用第二执行对象方法获取目标对象中的业务方法返回的执行结果。通过采用上述对象的动态调用方法、装置及电子设备,解决了现有技术中,在动态调用方法时代码容易出错以及工作量较大的问题。题。题。

【技术实现步骤摘要】
一种对象的动态调用方法、装置及电子设备


[0001]本申请涉及计算机
,具体而言,涉及一种对象的动态调用方法、装置及电子设备。

技术介绍

[0002]Java作为一门面向对象的编程语言,具备功能强大和简单易用两个特征,越来越多地被应用到各个领域的代码编写中。但是,在java编程语言中许多对象在运行时都会出现两种类型:编译时类型和运行时类型,编译时类型由声明该对象时使用的类型决定,运行时类型由实际赋予对象的类型决定,例如:Pet pet=new Dog(),此时对象pet的编译时类型是pet,运行时类型是Dog,因为只有在程序运行的时候才能知道pet引用的内容改变成了Dog类型,所以称之为运行时类型。除此之外,程序运行时还可能接收到外部传入的一个对象,该对象的编译类型是object,但程序又需要调用该对象运行时类型的方法。
[0003]现有技术中,为了解决这个动态调用的问题,通常是在编码过程中将该对象运行时可能调用的所有方法都列举出来,这会造成代码容易出错以及工作量较大的问题。

技术实现思路

[0004]有鉴于此,本申请的目的在于提供一种对象的动态调用方法、装置及电子设备,以解决现有技术中,在动态调用方法时代码容易出错以及工作量较大的问题。
[0005]第一方面,本申请实施例提供了一种对象的动态调用方法,包括:
[0006]响应于针对第一执行对象方法的动态调用指令,确定是否已生成与动态调用指令中的类标识对应的目标源码文件,动态调用指令包括多个目标参数,多个目标参数包括业务方法的方法名称、业务方法对应的目标对象的对象名称、定义目标对象的目标类的类标识;
[0007]若未生成目标源码文件,基于类标识获取目标类中的所有可执行方法;
[0008]利用预设组织模板将所有可执行方法组织在一起,生成第二执行对象方法;
[0009]基于第二执行对象方法、业务方法的方法名称、业务方法对应的目标对象的对象名称生成目标源码文件;
[0010]编译并执行目标源码文件,调用第二执行对象方法获取目标对象中的业务方法返回的执行结果。
[0011]可选地,在确定是否已生成与动态调用指令中的类标识对应的目标源码文件之前,还包括:确定待执行的业务方法,创建执行业务方法的目标对象;将业务方法的方法名称、目标对象的对象名称以及目标类的类标识作为参数传入第一执行对象方法,以对第一执行对象方法进行动态调用。
[0012]可选地,基于类标识获取目标类中的所有可执行方法,包括:基于类标识确定目标类的类名称;利用java提供的公共方法获取方法以及类名称,获取目标类中声明的所有公有类型的方法。
[0013]可选地,在基于类标识确定目标类的类名称之后,还包括:利用java提供的文件路径获取方法以及类名称,获取存储目标类的目标存储路径。
[0014]可选地,确定是否已生成与动态调用指令中的类标识对应的目标源码文件,包括:基于类标识确定目标源码文件的文件名称;确定目标存储路径中是否存在与文件名称匹配的文件;若存在匹配的文件,则确定已生成目标源码文件;若不存在匹配的文件,则确定未生成目标源码文件。
[0015]可选地,预设组织模板包括条件语句,第一执行对象方法包括与方法名称对应的第一参数名称以及与对象名称对应的第二参数名称;利用预设组织模板将所有可执行方法组织在一起,生成第二执行对象方法,包括:基于第一执行对象方法的方法名称、第一参数名称以及第二参数名称确定方法头;针对每个可执行方法,利用条件语句依次将该可执行方法与其他可执行方法组织在一起生成方法体;由方法头以及方法体实现对第二执行对象方法的定义。
[0016]可选地,编译并执行目标源码文件,调用第二执行对象方法获取目标对象中的业务方法返回的执行结果,包括:利用即时编译器对目标源码文件进行编译,生成java文件;按照预设命名规则对java文件进行命名,将命名后的java文件存储在目标存储路径中;执行命名后的java文件获取执行结果。
[0017]可选地,基于第二执行对象方法、业务方法的方法名称、业务方法对应的目标对象的对象名称生成目标源码文件,包括:将业务方法以及目标对象作为参数对第二执行对象方法进行调用,并将该调用纳入主函数中;基于第二执行对象方法的定义以及主函数构建目标源码文件。
[0018]第二方面,本申请实施例还提供了一种对象的动态调用装置,所述装置包括:
[0019]源码文件确定模块,用于响应于针对第一执行对象方法的动态调用指令,确定是否已生成与动态调用指令中的类标识对应的目标源码文件,动态调用指令包括多个目标参数,多个目标参数包括业务方法的方法名称、业务方法对应的目标对象的对象名称、定义目标对象的目标类的类标识;
[0020]可执行方法获取模块,用于若未生成目标源码文件,基于类标识获取目标类中的所有可执行方法;
[0021]执行对象方法生成模块,用于利用预设组织模板将所有可执行方法组织在一起,生成第二执行对象方法;
[0022]源码文件生成模块,用于基于第二执行对象方法、业务方法的方法名称、业务方法对应的目标对象的对象名称生成目标源码文件;
[0023]源码文件执行模块,用于编译并执行目标源码文件,调用第二执行对象方法获取目标对象中的业务方法返回的执行结果。
[0024]第三方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的对象的动态调用方法的步骤。
[0025]本申请实施例带来了以下有益效果:
[0026]本申请实施例提供的一种对象的动态调用方法、装置及电子设备,能够在动态调
用第一执行对象方法时,自动根据动态调用指令中的类标识获取到目标类中的所有可执行方法,然后,将所有可执行方法组织在一起生成第二执行对象方法以及第二执行对象方法对应的目标源码文件,编译并执行目标源码文件即可获取第二执行对象方法返回的执行结果,无需在编码过程中将该对象运行时可能调用的所有方法都列举出来,与现有技术中的对象的动态调用方法相比,解决了现有技术中,在动态调用方法时代码容易出错以及工作量较大的问题。
[0027]为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
[0028]为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0029]图1示出了本申请实施例所提供的对象的动态调用方法的流程图;
[0030]图2示出了本申请实施例所提供的对象的动态调用装置的结构示意图;
[0031]图3示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种对象的动态调用方法,其特征在于,包括:响应于针对第一执行对象方法的动态调用指令,确定是否已生成与所述动态调用指令中的类标识对应的目标源码文件,所述动态调用指令包括多个目标参数,所述多个目标参数包括业务方法的方法名称、所述业务方法对应的目标对象的对象名称、定义所述目标对象的目标类的类标识;若未生成目标源码文件,基于所述类标识获取所述目标类中的所有可执行方法;利用预设组织模板将所述所有可执行方法组织在一起,生成第二执行对象方法;基于所述第二执行对象方法、所述业务方法的方法名称、所述业务方法对应的目标对象的对象名称生成目标源码文件;编译并执行所述目标源码文件,调用所述第二执行对象方法获取所述目标对象中的业务方法返回的执行结果。2.根据权利要求1所述的方法,其特征在于,在所述确定是否已生成与所述动态调用指令中的类标识对应的目标源码文件之前,还包括:确定待执行的业务方法,创建执行所述业务方法的目标对象;将所述业务方法的方法名称、所述目标对象的对象名称以及所述目标类的类标识作为参数传入所述第一执行对象方法,以对所述第一执行对象方法进行动态调用。3.根据权利要求1所述的方法,其特征在于,所述基于所述类标识获取所述目标类中的所有可执行方法,包括:基于所述类标识确定目标类的类名称;利用java提供的公共方法获取方法以及所述类名称,获取所述目标类中声明的所有公有类型的方法。4.根据权利要求3所述的方法,其特征在于,在所述基于所述类标识确定目标类的类名称之后,还包括:利用java提供的文件路径获取方法以及所述类名称,获取存储所述目标类的目标存储路径。5.根据权利要求4所述的方法,其特征在于,所述确定是否已生成与所述动态调用指令中的类标识对应的目标源码文件,包括:基于所述类标识确定目标源码文件的文件名称;确定所述目标存储路径中是否存在与所述文件名称匹配的文件;若存在匹配的文件,则确定已生成目标源码文件;若不存在匹配的文件,则确定未生成目标源码文件。6.根据权利要求1所述的方法,其特征在于,所述预设组织模板包括条件语句,所述第一执行对象方法包括与方法名称对应的第一参数名称以及与对象名称对应的第二参数名称;所述利用预设组织模板将所述所有可执行方法组织在一起,生成第二执行对象方法,包括:基于所述第...

【专利技术属性】
技术研发人员:李小龙吴灵辉
申请(专利权)人:北京远舢智能科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1