[发明专利]获取参数名和局部变量名的方法、装置、设备及存储介质有效
申请号: | 201810426003.X | 申请日: | 2018-05-07 |
公开(公告)号: | CN108628635B | 公开(公告)日: | 2021-12-14 |
发明(设计)人: | 林锡鑫 | 申请(专利权)人: | 广州视源电子科技股份有限公司;广州视睿电子科技有限公司 |
主分类号: | G06F8/74 | 分类号: | G06F8/74;G06F8/30 |
代理公司: | 北京品源专利代理有限公司 11332 | 代理人: | 孟金喆 |
地址: | 510530 广东省*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 获取 参数 局部 变量 方法 装置 设备 存储 介质 | ||
1.一种获取参数名和局部变量名的方法,其特征在于,包括:
解析源代码中的注解标记并修改源代码,修改后的源代码的预设代码行添加有识别标记;
通过反射机制获取修改后的源代码中类的成员函数参数名;
运行修改后的源代码获取局部变量名;
其中,所述解析源代码中的注解标记并修改源代码,包括:
创建一个实现AbstractProcessor的接口的类,用于获取待解析的Java源文件;
使用JDK提供的tools.jar包中的ASTParser类,根据Java源文件生成抽象语法树;
通过抽象语法树,搜索第一注解字段标记,并通过抽象语法树修改成员函数的参数;
通过抽象语法树,搜索变量名获取语句,并修改该语句中所使用的参数;
其中,所述搜索变量名获取语句,并修改该语句中所使用的参数,包括:
获取第一局部变量的变量名字符串;
通过抽象语法树,替换变量名获取语句中的Object类型的第一局部变量为String类型的第一局部变量参数;
其中,所述第一局部变量的名称为无法直接获取的变量名称。
2.根据权利要求1所述的方法,其特征在于,所述解析源代码中的注解标记并修改源代码之前,还包括:
接收第一注解字段,所述第一注解字段对应于源代码中的类、类的成员函数或成员函数的参数;
在已加入第一注解字段的类的成员函数中,声明第一局部变量并加入变量名获取语句。
3.根据权利要求1所述的方法,其特征在于,所述通过反射机制获取修改后的源代码中类的成员函数参数名,具体包括:
通过反射获取第一注解字段的信息;
输出第一注解字段中的名称属性,所述名称属性为所需的成员函数参数名或局部变量名。
4.根据权利要求1所述的方法,其特征在于,所述通过抽象语法树修改成员函数的参数,具体包括:
若第一注解字段标记附加在成员函数的参数上,则通过所述抽象语法树,获取所述参数的参数名字符串,对所述参数增加第二注解字段;
若第一注解字段标记附加在成员函数上,通过抽象语法树,遍历所述成员函数的全部参数,获取所述参数名字符串,对所述参数增加第二注解字段;
若第一注解字段标记附加在类上,则对所述类包括的所有的方法增加第二注解字段。
5.根据权利要求2所述方法,其特征在于,所述第一局部变量为Object类型的局部变量。
6.一种获取参数名和局部变量名的装置,其特征在于,包括:
代码解析模块,用于解析源代码中的注解标记并修改源代码,修改后的源代码的预设代码行添加有识别标记;
参数名获取模块,用于通过反射机制获取修改后的源代码中类的成员函数参数名;
局部变量获取模块,用于运行修改后的源代码获取局部变量名;
其中,所述代码解析模块,包括:
接口创建单元,用于创建一个实现AbstractProcessor的接口的类,用于获取待解析的Java源文件;
抽象语法树生成单元,用于使用JDK提供的tools.jar包中的ASTParser类,根据Java源文件生成抽象语法树;
成员函数修改单元,用于通过抽象语法树,搜索第一注解字段标记,并通过抽象语法树修改成员函数的参数;
特定语句修改单元,用于通过抽象语法树,搜索变量名获取语句,并修改该语句中所使用的参数;
其中,所述特定语句修改单元,还用于:
获取第一局部变量的变量名字符串;
通过抽象语法树,替换变量名获取语句中的Object类型的第一局部变量为String类型的第一局部变量参数;
其中,所述第一局部变量的名称为无法直接获取的变量名称。
7.一种设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的获取参数名和局部变量名的方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一所述的获取参数名和局部变量名的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州视源电子科技股份有限公司;广州视睿电子科技有限公司,未经广州视源电子科技股份有限公司;广州视睿电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810426003.X/1.html,转载请声明来源钻瓜专利网。