代码检测方法、装置、电子设备以及存储介质制造方法及图纸

技术编号:38029057 阅读:7 留言:0更新日期:2023-06-30 10:55
本申请实施例公开了一种代码检测方法、电子设备以及存储介质,包括:获取待检测代码;对所述待检测代码进行编译;获取编译后的待检测代码中的候选类;滤除所述候选类中的目标类,得到非静态内部类,并输出所述非静态内部类,该方案可以提高代码检测的效率。该方案可以提高代码检测的效率。该方案可以提高代码检测的效率。

【技术实现步骤摘要】
代码检测方法、装置、电子设备以及存储介质


[0001]本申请涉及计算机
,具体涉及一种代码检测方法、装置、电子设备以及存储介质。

技术介绍

[0002]序列化(Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
[0003]目前,对于解析服务器数据而言,服务器通常返回的是json字符串,对于该json字符串,通常采用Gson进行解析,但是,Gson无法自动反序列化纯内部类,因为它们的无参数构造函数还需要对包含对象的引用,而在反序列化时该对象不可用,导致工程人员需要人工对服务器的代码进行检测并修改,由此可见,目前的代码检测效率低下。

技术实现思路

[0004]本申请实施例提供一种代码检测方法、电子设备以及存储介质,可以提高代码检测的效率。
[0005]本申请实施例提供了一种代码检测方法,包括:
[0006]获取待检测代码;
[0007]对所述待检测代码进行编译;
[0008]获取编译后的待检测代码中的候选类;
[0009]滤除所述候选类中的目标类,得到非静态内部类,并输出所述非静态内部类。
[0010]可选的,在一些实施例中,所述滤除所述候选类中的目标类,得到非静态内部类,包括:
[0011]对所述候选类中的非内部类进行滤除;
[0012]获取滤除后的候选类中每个类的属性信息;
[0013]基于所述属性信息在滤除后的候选类中确定非静态内部类。
[0014]可选的,在一些实施例中,所述基于所述属性信息在滤除后的候选类中确定非静态内部类,包括:
[0015]从所述属性信息中获取类本身的属性成员;
[0016]基于所述属性成员,在滤除后的候选类中确定非静态内部类。
[0017]可选的,在一些实施例中,所述获取编译后的待检测代码中的候选类,包括:
[0018]采用预设函数获取编译后的待检测代码中的候选类。
[0019]可选的,在一些实施例中,所述输出所述非静态内部类,包括:
[0020]将一个所述非静态内部类添加至一个预设对象中;
[0021]遍历所有的预设对象,并展示每个预设对象中的非静态内部类。
[0022]可选的,在一些实施例中,所述对所述待检测代码进行编译,包括:
[0023]检测当前运行模式;
[0024]当检测到所述当前运行模式为纠错模式时,则对所述待检测代码进行编译。
[0025]相应的,本申请还提供一种代码检测装置,包括:
[0026]第一获取模块,用于获取待检测代码;
[0027]编译模块,用于对所述待检测代码进行编译;
[0028]第二获取模块,用于获取编译后的待检测代码中的候选类;
[0029]滤除模块,用于滤除所述候选类中的目标类,得到非静态内部类;
[0030]输出模块,用于输出所述非静态内部类。
[0031]可选地,在一些实施例中,所述滤除模块包括:
[0032]滤除单元,用于对所述候选类中的非内部类进行滤除;
[0033]获取单元,用于获取滤除后的候选类中每个类的属性信息;
[0034]确定单元,用于基于所述属性信息在滤除后的候选类中确定非静态内部类。
[0035]相应的,本申请还提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时如上任一所述方法的步骤。
[0036]本申请还提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述方法的步骤。
[0037]本申请实施例提供的代码检测方案,在获取待检测代码后,对所述待检测代码进行编译,然后获取编译后的待检测代码中的候选类,最后滤除所述候选类中的目标类,得到非静态内部类,并输出所述非静态内部类。在本申请提供的代码检测的方案中,可以获取编译后的待检测代码中的候选类,并对候选类进行滤除操作,从而输出非静态内部类,无需人工在待检测代码中查询非静态内部类,便于后续对该非静态内部类进行修改,由此,可以提高代码检测的效率。
附图说明
[0038]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0039]图1是本申请实施例提供的代码检测方法的流程示意图;
[0040]图2是本申请实施例提供的代码检测装置的结构示意图;
[0041]图3是本申请实施例提供的电子设备的结构示意图。
具体实施方式
[0042]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0043]本申请实施例提供一种代码检测方法、装置、电子设备和存储介质。
[0044]其中,该代码检测装置具体可以集成在服务器或者终端中,服务器可以包括一个独立运行的服务器或者分布式服务器,也可以包括由多个服务器组成的服务器集群,终端可以包括手机、平板电脑或个人计算机(PC,Personal Computer)。
[0045]以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
[0046]一种代码检测方法,包括:获取待检测代码;对待检测代码进行编译;获取编译后的待检测代码中的候选类;滤除候选类中的目标类,得到非静态内部类,并输出非静态内部类。
[0047]请参阅图1,图1为本申请实施例提供的代码检测方法的流程示意图。该代码检测方法的具体流程可以如下:
[0048]101、获取待检测代码。
[0049]其中,待检测代码可以是由用户输入的代码,待检测代码还可以是保存在本地数据库的代码,也可以是通过访问网络接口拉取得到的代码,具体根据实际情况而定。
[0050]102、对待检测代码进行编译。
[0051]编译(compilation,compile)1、利用编译程序从源语言编写的源程序产生目标程序的过程。2、用编译程序产生目标程序的动作。编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码检测方法,其特征在于,包括:获取待检测代码;对所述待检测代码进行编译;获取编译后的待检测代码中的候选类;滤除所述候选类中的目标类,得到非静态内部类,并输出所述非静态内部类。2.根据权利要求1所述的方法,其特征在于,所述滤除所述候选类中的目标类,得到非静态内部类,包括:对所述候选类中的非内部类进行滤除;获取滤除后的候选类中每个类的属性信息;基于所述属性信息在滤除后的候选类中确定非静态内部类。3.根据权利要求2所述的方法,其特征在于,所述基于所述属性信息在滤除后的候选类中确定非静态内部类,包括:从所述属性信息中获取类本身的属性成员;基于所述属性成员,在滤除后的候选类中确定非静态内部类。4.根据权利要求1至3任一项所述的方法,其特征在于,所述获取编译后的待检测代码中的候选类,包括:采用预设函数获取编译后的待检测代码中的候选类。5.根据权利要求1至3任一项所述的方法,其特征在于,所述输出所述非静态内部类,包括:将一个所述非静态内部类添加至一个预设对象中;遍历所有的预设对象,并展示每个预设对象中的非静态内部类。6.根据权利要求1至3任一项所述的方法,其特征在于,所述对所述待...

【专利技术属性】
技术研发人员:王哲凡
申请(专利权)人:深圳依时货拉拉科技有限公司
类型:发明
国别省市:

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

1