[发明专利]代码调用方法、装置、终端及存储介质有效
申请号: | 201911009782.4 | 申请日: | 2019-10-23 |
公开(公告)号: | CN110764748B | 公开(公告)日: | 2023-03-14 |
发明(设计)人: | 李兆轩 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F8/41 |
代理公司: | 北京天达共和律师事务所 11798 | 代理人: | 关刚 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 调用 方法 装置 终端 存储 介质 | ||
1.一种代码调用方法,其特征在于,包括:
设计接口,并且在所述接口上通过注解修饰待反射的目标类和所述目标类中的目标属性,其中,所述目标属性的权限为私有或受保护的;
通过注解处理器对注解的目标类和目标属性进行解析,并且将待反射的目标类和目标属性整理到文件中;
为所述接口生成实现类,其中,所述实现类中的方法均为空方法;
遍历代码中的类文件,查找所述类文件中的所述目标类,并且将所述目标类中的所述目标属性的权限更改为公有的;
向所述实现类中的所述空方法中插入对所述目标属性的直接调用代码。
2.根据权利要求1所述的代码调用方法,其特征在于,所述目标属性包括成员变量和成员方法中的至少一种。
3.根据权利要求1所述的代码调用方法,其特征在于,在通过注解处理器对注解的目标类和目标属性进行解析之前,还包括:
通过调用标准应用程序函数注册所述注解处理器,并且指明所述注解处理器用于处理所述注解。
4.根据权利要求1所述的代码调用方法,其特征在于,在遍历代码中的类文件之前,还包括:
通过字节码修改器读取所述注解处理器整理的所述文件,获取待反射的所述目标类以用于查找所述类文件中的所述目标类。
5.根据权利要求1所述的代码调用方法,其特征在于,还包括:
在向所述实现类中的所述空方法中插入对所述目标属性的直接调用代码之后,通过工厂类获取所述实现类并且运行所述实现类。
6.一种代码调用装置,其特征在于,包括:
接口设计模块,配置为设计接口,并且在所述接口上通过注解修饰待反射的目标类和所述目标类中的目标属性,其中,所述目标属性的权限为私有或受保护的;
注解处理模块,配置为对注解的目标类和目标属性进行解析,并且将待反射的目标类和目标属性整理到文件中;
实现类生成模块,配置成为所述接口生成实现类,其中,所述实现类中的方法均为空方法;
字节码修改模块,配置为遍历代码中的类文件,查找所述类文件中的所述目标类,并且将所述目标类中的所述目标属性的权限更改为公有的,所述字节码修改模块还配置为向所述实现类中的所述空方法中插入对所述目标属性的直接调用代码。
7.根据权利要求6中的代码调用装置,其特征在于,所述目标属性包括成员变量和成员方法中的至少一种。
8.根据权利要求6中的代码调用装置,其特征在于,还包括:
实现类运行模块,配置为获取插入有所述目标属性的直接调用代码的所述实现类并且运行所述实现类。
9.一种终端,其特征在于,所述终端包括:
至少一个存储器和至少一个处理器;
其中,所述存储器用于存储程序代码,所述处理器用于调用所述存储器所存储的程序代码以执行权利要求1至5中任一项所述的代码调用方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有程序代码,所述程序代码用于执行权利要求1至5中任一项所述的代码调用方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911009782.4/1.html,转载请声明来源钻瓜专利网。