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



目录
相关文章
|
1月前
|
XML Java 项目管理
java maven 和gradle哪种好
java maven 和gradle哪种好
98 0
|
10月前
|
Java Maven
Java——maven引用本地jar包的几种方式
Java——maven引用本地jar包的几种方式
|
10月前
|
Java Maven
Java——maven多模块项目打jar包如何设置启动类
Java——maven多模块项目打jar包如何设置启动类
|
10月前
|
Java Maven
Java——如何将一个maven项目打出多个jar包
Java——如何将一个maven项目打出多个jar包
|
设计模式 监控 Java
字节码插桩(二): AspectJ + GradlePlugin
作为Android开发,多多少少遇到过这种情况,我的App很卡,大概知道问题出现在哪?却无从下手,接受别人的工程代码写的一团糟,出现天大的bug,却因为不熟悉业务不敢乱动,有没有一种侵入性比较低,比较和谐的方式去修改业务代码呢  学习设计模式可以一定程度降低业务耦合度,不过那都是 OOP 的思想,今天我给大家带来一份 AOP 的切面编程思想,无侵入方式织入代码到业务。
184 0
字节码插桩(二): AspectJ + GradlePlugin
|
Java Maven
Maven编译忽略测试类
Maven编译忽略测试类
123 0
Maven编译忽略测试类
10S
|
Java Maven Android开发
Eclipse maven jar包自动引用版本错误
Eclipse maven jar包自动引用版本错误解决
10S
434 0
Eclipse maven jar包自动引用版本错误
|
存储 安全 Java
IDEA插件:FindBugs-- 在Java程序中查找错误
IDEA插件:FindBugs-- 在Java程序中查找错误
764 0
IDEA插件:FindBugs-- 在Java程序中查找错误
Drools7在Intellij IDEA下的引入静态方法错误提示
Drools7在Intellij IDEA下的引入静态方法错误提示
387 0
Drools7在Intellij IDEA下的引入静态方法错误提示