findbugs类介绍(BetterVisitor)

简介: 看这篇文章之前,建议大家先进行一些简单的自定义规则的实践。findbugs自定义规则中比较重要的几个类:BetterVisitor:    此类实现了Visitor这个接口,在这个接口中定义了一系列的监察方法,在B...

看这篇文章之前,建议大家先进行一些简单的自定义规则的实践。

findbugs自定义规则中比较重要的几个类:

BetterVisitor:

    此类实现了Visitor这个接口,在这个接口中定义了一系列的监察方法,在BetterVisitor这个类中除了实现了Visitor这个接口中定义的所有方法,还定义了一些自己的方法,接下来就来看看这些方法的作用:

1.visit(Code obj)

public void visit(Code obj) {
        visit((Attribute) obj);
        }

这个方法是自定义规则中最常用的,它的作用是:在检测某个检测类的不同方法时进入此方法
重写这个方法的时候一定要在方法中写:super.visit(obj)
<span style="white-space:pre">	</span>public void visit(Code obj) {
		super.visit(obj);
	}
例如:
public class TestedClass {
	
	public void method1( ...) {
		.....
	}
	
	public void method2(...) {
		.....
	}
}

在检测TestedClass时:当findbugs扫描到method1方法时就会进入visit(Code obj)方法中,在检测method1方法中代码的时候不会再进入visit(Code obj)方法中,直到扫描到method2方法的时候才会再次进入visit(Code obj)。

所以visit(Code obj)方法经常用来重置自定义规则类中的变量的。



目录
相关文章
|
28天前
|
Java Maven
Idea下运行Maven项目时provide包没有依赖导致类找不到
Idea下运行Maven项目时provide包没有依赖导致类找不到
26 0
|
XML 数据可视化 jenkins
干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测
干货!Jenkins下配置findbugs、pmd及checkstyle实现代码自动检测
278 0
|
设计模式 监控 Java
字节码插桩(二): AspectJ + GradlePlugin
作为Android开发,多多少少遇到过这种情况,我的App很卡,大概知道问题出现在哪?却无从下手,接受别人的工程代码写的一团糟,出现天大的bug,却因为不熟悉业务不敢乱动,有没有一种侵入性比较低,比较和谐的方式去修改业务代码呢  学习设计模式可以一定程度降低业务耦合度,不过那都是 OOP 的思想,今天我给大家带来一份 AOP 的切面编程思想,无侵入方式织入代码到业务。
187 0
字节码插桩(二): AspectJ + GradlePlugin
|
Java Maven
Maven编译忽略测试类
Maven编译忽略测试类
127 0
Maven编译忽略测试类
|
Java Maven Android开发
IntelliJ IDEA 中看到 classes, sources, javadocs 三种jar的区别和各自的作用
在 intelliJ idea 里面看到 ,Project Structure——》 Libraries ——》 Sources 的路径是红色的 看图会比较好。以guava包为例来说明。 可以看到在这看整个maven项目的依赖时,发现如图的情况,这红色是什么情况,是报错吗?需要处理吗?这3个不同jar都是什么东西,各自有啥作用。
4767 0
Drools7在Intellij IDEA下的引入静态方法错误提示
Drools7在Intellij IDEA下的引入静态方法错误提示
388 0
Drools7在Intellij IDEA下的引入静态方法错误提示
|
Java 测试技术 Maven
maven 打包编译忽略单元测试类
当用maven项目的时候,测试是系统必不可少的,但是在打包或者需要执行maven 命令的时候,一般不去限制的话,就会去执行测试单元,导致各种各样的问题,所以我们可以在pom.xml 中直接去忽略测试 ,这样子当我打包的时候就可以不用管单元测试带来的影响了。
1840 0