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



目录
相关文章
|
Java Maven
IDEA项目编译时报:Warning:java: 源值1.5已过时
Idea中maven项目jdk编译version总是跳到1.5版本解决方案-Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
898 2
IDEA项目编译时报:Warning:java: 源值1.5已过时
|
3月前
|
Java
Java系列之 IDEA 为类 和 方法设置注解模板
这篇文章介绍了如何在IntelliJ IDEA中为类和方法设置注解模板,包括类模板的创建和应用,以及两种不同的方法注解模板的创建过程和实际效果展示,旨在提高代码的可读性和维护性。
|
4月前
|
Java Maven 编译器
Java编译器注解运行和自动生成代码问题之Maven编译时设置生成的源码的文件夹路径问题如何解决
Java编译器注解运行和自动生成代码问题之Maven编译时设置生成的源码的文件夹路径问题如何解决
|
6月前
|
搜索推荐 Java 编译器
Javac 编译自定义注解及分析 Lombok 的注解实现
Javac 编译自定义注解及分析 Lombok 的注解实现
169 0
|
设计模式 监控 Java
字节码插桩(二): AspectJ + GradlePlugin
作为Android开发,多多少少遇到过这种情况,我的App很卡,大概知道问题出现在哪?却无从下手,接受别人的工程代码写的一团糟,出现天大的bug,却因为不熟悉业务不敢乱动,有没有一种侵入性比较低,比较和谐的方式去修改业务代码呢  学习设计模式可以一定程度降低业务耦合度,不过那都是 OOP 的思想,今天我给大家带来一份 AOP 的切面编程思想,无侵入方式织入代码到业务。
257 0
字节码插桩(二): AspectJ + GradlePlugin
|
搜索推荐 Java 编译器
Javac编译自定义注解及分析Lombok的注解实现
在上一篇中,我留下了几个疑问,我们使用lombok的注解时,为什么加了个注解就可以帮我们自动生成代码呢?是谁给我们做了这件事情呢?它的原理是什么样的呢?
890 0
Javac编译自定义注解及分析Lombok的注解实现
|
存储 安全 Java
IDEA插件:FindBugs-- 在Java程序中查找错误
IDEA插件:FindBugs-- 在Java程序中查找错误
896 0
IDEA插件:FindBugs-- 在Java程序中查找错误
|
Java API
字节码编程,Javassist篇五《使用Bytecode指令码生成含有自定义注解的类和方法》
到本章为止已经写了四篇关于字节码编程的内容,涉及了大部分的API方法。整体来说对 Javassist 已经有一个基本的使用认知。那么在 Javassist 中不仅提供了高级 API 用于创建和修改类、方法,还提供了低级 API 控制字节码指令的方式进行操作类、方法。
244 0
字节码编程,Javassist篇五《使用Bytecode指令码生成含有自定义注解的类和方法》
Drools7在Intellij IDEA下的引入静态方法错误提示
Drools7在Intellij IDEA下的引入静态方法错误提示
434 0
Drools7在Intellij IDEA下的引入静态方法错误提示