[发明专利]类的冲突检测方法、装置、设备及可读存储介质在审
| 申请号: | 202110777982.5 | 申请日: | 2021-07-09 |
| 公开(公告)号: | CN113448858A | 公开(公告)日: | 2021-09-28 |
| 发明(设计)人: | 魏全博;谢艳芬 | 申请(专利权)人: | 北京三快在线科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41 |
| 代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 谢冬寒 |
| 地址: | 100080 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 冲突 检测 方法 装置 设备 可读 存储 介质 | ||
本申请公开了一种类的冲突检测方法、装置、设备及可读存储介质,属于软件开发技术领域。方法包括:获取存在潜在冲突的第一类对,第一类对中的两个类的类名称和包路径相同,且两个类属于不同的依赖包文件;基于第一类对中各个类的源代码,获取第一类对中各个类的类信息;响应于第一类对中各个类的类信息相同,确定第一类对中的两个类存在冲突。本申请实现了通过比对类名称、包路径和类信息这三种信息是否相同,来确定两个类是否为同一个类,增加了比对的信息种类,提高了准确性,从而提高了软件开发效率。
技术领域
本申请实施例涉及软件开发技术领域,特别涉及一种类的冲突检测方法、装置、设备及可读存储介质。
背景技术
在软件开发过程中,类冲突问题是常见的问题,轻则导致服务器无法部署该软件,重则导致该软件在线上运行时出现错误。类冲突问题是指类加载器加载出现在两个以及两个以上的依赖包文件中的类时,仅加载了其中一个依赖包文件中的类,使得加载结果与期望不一致的问题。为避免出现类冲突问题,对类进行冲突检测成为一个关键技术。
相关技术中,对类进行冲突检测时,先判断两个类的包路径、类名称是否相同,若两个类的包路径、类名称相同,则确定这两个类为同一个类,之后,判断这两个类是否在同一个依赖包文件中,若这两个类在不同的依赖包文件中,则确定这两个类存在冲突。由于仅通过类名称和包路径确定两个类是否为同一个类存在很大的局限性,因此,采用上述方式对类进行冲突检测时,准确性较低,影响软件开发效率。
发明内容
本申请实施例提供了一种类的冲突检测方法、装置、设备及计算机可读存储介质,可用于解决相关技术中的问题,所述技术方案包括如下内容。
第一方面,本申请实施例提供了一种类的冲突检测方法,所述方法包括:
获取存在潜在冲突的第一类对,所述第一类对中的两个类的类名称和包路径相同,且所述两个类属于不同的依赖包文件;
基于所述第一类对中各个类的源代码,获取所述第一类对中各个类的类信息;
响应于所述第一类对中各个类的类信息相同,确定所述第一类对中的所述两个类存在冲突。
在一种可能的实现方式中,所述获取存在潜在冲突的第一类对,包括:
获取各个依赖包文件;
对所述各个依赖包文件进行反编译,得到所述各个依赖包文件对应的源代码;
基于所述各个依赖包文件对应的源代码确定所述第一类对。
在一种可能的实现方式中,所述获取各个依赖包文件,包括:
获取软件项目代码,所述软件项目代码包括第一源代码和所述第一源代码所依赖的第二源代码;
对所述软件项目代码进行打包,得到软件项目包文件;
从所述软件项目包文件的静态库目录中提取所述第一源代码所依赖的各个依赖包文件,所述各个依赖包文件为所述第二源代码对应的文件。
在一种可能的实现方式中,所述基于所述各个依赖包文件对应的源代码确定所述第一类对,包括:
从所述各个依赖包文件对应的源代码中提取多个类的信息,一个类的信息包括所述一个类的类名称和所述一个类的包路径;
响应于所述多个类的信息中两个类的信息相同且所述两个类属于不同的依赖包文件,确定所述两个类为所述第一类对。
在一种可能的实现方式中,一个类的类信息包括以下至少一项:
所述一个类的类名称、所述一个类中的函数数量、所述一个类中各个函数的函数名称、所述一个类中各个函数的代码长度、所述一个类中各个函数的函数类型、所述一个类中的参数数量、所述一个类中各个参数的参数类型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京三快在线科技有限公司,未经北京三快在线科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110777982.5/2.html,转载请声明来源钻瓜专利网。





