findbugs类介绍(BetterVisitor)

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

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)方法经常用来重置自定义规则类中的变量的。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章