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)方法經常用來重置自定義規則類中的變量的。



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