[发明专利]代码调用方法、装置、终端及存储介质有效

专利信息
申请号: 201911009782.4 申请日: 2019-10-23
公开(公告)号: CN110764748B 公开(公告)日: 2023-03-14
发明(设计)人: 李兆轩 申请(专利权)人: 北京字节跳动网络技术有限公司
主分类号: G06F8/30 分类号: G06F8/30;G06F8/41
代理公司: 北京天达共和律师事务所 11798 代理人: 关刚
地址: 100041 北京市石景山区*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 代码 调用 方法 装置 终端 存储 介质
【说明书】:

本公开的实施例提供了一种代码调用方法、装置、终端及存储介质。代码调用方法包括:设计接口,并且在接口上通过注解修饰待反射的目标类和目标属性;通过注解处理器对注解的目标类和目标属性进行解析,并且将待反射的目标类和目标属性整理到文件中;为接口生成实现类;遍历代码中的类文件,查找类文件中的目标类,并且将目标类中的目标属性的权限更改为公有的;向实现类中的所述空方法中插入对目标属性的直接调用代码。通过采用本公开的代码调用方法,可以在调用私有或受保护的目标属性的代码时省去繁琐的反射查找,缓解反射带来的性能损耗。

技术领域

本公开的实施例涉及计算机技术领域,更具体地,涉及代码调用方法、装置、终端及存储介质。

背景技术

一些编程语言(例如,java)的语法规范对类的成员变量(field)与成员方法(method)提供了不同级别的访问权限修饰符,以此更好的以面向对象的方法设计代码。另外,这类语言通常建议开发者只对外暴露少部分必要的成员方法与成员变量,将大部分的成员变量和成员方法设为私有的(private)或受保护的(protected),以避免其他调用者任意修改这些内部属性而造成设计者预料之外的情况,以此保证程序的稳定性。

但往往一段代码的设计无法在一开始就满足未来所有的需求,随着项目演进,调用者不得不需要对类的私有成员变量或成员方法进行修改或调用,此时可能需要通过编程语言(例如,java)的反射机制实现这一能力。

然而,反射机制有严重的性能代价。反射执行需要在运行时通过字符串遍历类文件查找目标成员变量或成员方法,非常耗时。

发明内容

提供该发明内容部分以便以简要的形式介绍构思,这些构思将在后面的具体实施方式部分被详细描述。该发明内容部分并不旨在标识要求保护的技术方案的关键特征或必要特征,也不旨在用于限制所要求的保护的技术方案的范围。

为了解决上述问题,本公开提供了一种代码调用方法、装置、终端及存储介质,本公开的代码调用方法可以在调用私有或受保护的目标属性的代码时省去繁琐的反射查找,缓解反射带来的性能损耗。

根据本公开的一个实施例,提供了一种代码调用方法,包括:设计接口,并且在所述接口上通过注解修饰待反射的目标类和所述目标类中的目标属性,其中,所述目标属性的权限为私有或受保护的;通过注解处理器对注解的目标类和目标属性进行解析,并且将待反射的目标类和目标属性整理到文件中;为所述接口生成实现类,其中,所述实现类中的方法均为空方法;遍历代码中的类文件,查找所述类文件中的所述目标类,并且将所述目标类中的所述目标属性的权限更改为公有的;向所述实现类中的所述空方法中插入对所述目标属性的直接调用代码。

根据本公开的另一实施例,提供了一种代码调用装置,包括:接口设计模块,配置为设计接口,并且在所述接口上通过注解修饰待反射的目标类和所述目标类中的目标属性,其中,所述目标属性的权限为私有或受保护的;注解处理模块,配置为对注解的目标类和目标属性进行解析,并且将待反射的目标类和目标属性整理到文件中;实现类生成模块,配置成为所述接口生成实现类,其中,所述实现类中的方法均为空方法;字节码修改模块,配置为遍历代码中的类文件,查找所述类文件中的所述目标类,并且将所述目标类中的所述目标属性的权限更改为公有的,所述字节码修改模块还配置为向所述实现类中的所述空方法中插入对所述目标属性的直接调用代码。

根据本公开的另一实施例,提供了一种终端,所述终端包括:至少一个存储器和至少一个处理器;其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器所存储的程序代码以执行上述代码调用方法。

根据本公开的另一实施例,提供了一种计算机存储介质,所述计算机存储介质存储有程序代码,所述程序代码用于执行上述代码调用方法。

通过采用本公开的代码调用方法,可以在调用私有或受保护的目标属性的代码时省去繁琐的反射查找,缓解反射带来的性能损耗,让反射调用像普通代码调用那样方便快捷。

附图说明

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201911009782.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top