从FindBugs中学Java【四】
2019独角兽企业重金招聘Python工程师标准>>>
5.TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED
6.TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS
7.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK
8.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK
9.TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK
10.TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK
11.TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED
12.TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED
今天这个比较有意思。
从JSR-305说起,findbugs的老大马里兰大学的Bill Pugh (William Pugh)牵头制订了JSR-305作为一套注解标准,用来帮助静态分析工具处理代码,开始很多大厂都在响应,不过这个标准很多年没更新了(since 11 Sep, 2006),而且跟JSR-308有很像,而且Java8里似乎都没有包含JSR-305。
有兴趣的,可以参考JSR-308, 在JEP-104上有Java应用的详细资料。
从一份FindBugs 2.0.3的资料上看,好像有类似的几个关键字都与JSR-305相关。本系列第一篇文章基于另一个版本的,所以索引中的例子少了几个。
模式 |
TQ |
速度 |
慢 |
缺陷类别 |
正确性 |
类型 |
edu.umd.cs.findbugs.detect.CheckTypeQualifiers |
||||
说明 |
检查变量是否违反由JSR-305类型的修饰符注解所指定的属性。 |
||||
报告模式 |
1. TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED (TQ, CORRECTNESS): 变量在不能带有一个类型修饰符的地方却带有这个类型修饰符 2. TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS (TQ, CORRECTNESS): 比较不兼容的类型修饰符所修饰的变量 3. TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK (TQ, STYLE): 将需要带有类型修饰符的变量标记为未知 4. TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK (TQ, STYLE): 将不需要带有类型修饰符的变量标记为未知 5. TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK (TQ, CORRECTNESS): 变量可能不带有一个类型修饰符,但使用时却总是需要它带有这个类型修饰符 6. TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK (TQ, CORRECTNESS): 变量可能带有一个类型修饰符,但使用时却禁止它带有这个类型修饰符 7. TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED (TQ, CORRECTNESS): 在需要变量带有一个类型修饰符的地方,却将这个变量注解为从不带有这个类型修饰符 8. TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED (TQ, CORRECTNESS): 变量在需要带有类型修饰符的地方却没有带有这个类型修饰符 |
休眠的标准,例子就不举了~
Ref: 1 2 3 4 5
转载于:https://my.oschina.net/u/921876/blog/399077
从FindBugs中学Java【四】相关推荐
- JAVA四种引用方式
JAVA四种引用方式: java.lang.ref: 强引用(直接变量赋值) 软引用(SoftReference): 只有在要发生OOM错误之前才会回收掉老的软引用对象,应用场景主要防止内存溢出.(缓 ...
- java 四种内存_不可访问内存 Java四种引用包括强引用,软引用,弱引用,虚引用...
小结: 1.不可访问内存是指一组没有任何可访问指针指向的由计算机程序进行动态分配的内存块. 2.垃圾收集器能决定是否一个对象还是可访问的:任何被确定不可访问的对象将会被释放. https://zh.w ...
- JAVA四种基本排序总结
JAVA四种基本排序,包括冒泡法,插入法,选择法,SHELL排序法.其中选择法是冒泡法的改进,SHELL排序法是 插入法的改进.所以从根本上来说可以归纳为两种不同的排序方法:即:插入法&冒泡法 ...
- [转]new Thread的弊端及Java四种线程池的使用
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端 执行一个异步任务你还只是如下new ...
- Java 四种线程池
原文 介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用.本文是基础篇,后面会分享下线程池一些高级功能. 1.new Thread的弊端 执行一个异步任务你还只是如下n ...
- java四类八种基本数据类型
java基本数据类型就8种,除了这些都是引用型的了. 一.java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类:逻辑型 ...
- java存储整数,用于存储整数数值的是 JAVA四种整数数据类型的取值范围分别是多少...
JAVA四种整数数据类型的取值范围分别是多少 byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) short的取值范围为-32768~32767,占用2个字节(-2的1 ...
- java四类八种_java四类八种基本数据类型
Java基本数据类型就8种,记住就好了.除了这些都是引用型的了. java四类八种基本数据类型 第一类:整型 byte short int long 第二类:浮点型 float double 第三类: ...
- Java 四种权限修饰符
Java 四种权限修饰符访问权限 public protected (default) private 同一个类(我自己) yes yes yes yes 同一包(我邻居) yes yes yes n ...
- 学Java四个月了,再回头看看。
从去年决定学Java到现在(2007年3月31日)已整整四个月了,最深刻的一个感觉就是越学越多,自己知道的越少.另处一个体验就是自学太难了,没人指导,没人交流全靠自己摸索.我这样学,能有什么收获??? ...
最新文章
- 2012/08/27 夜
- dedecms后台怎么添加发布软件?织梦后台软件内容管理
- DPDK 18 log日志系统使用
- Python实现微信朋友签名云图项目
- 从新手到高手 c++全方位学习_股票新手怎样快速入门?关于散户学习炒股的几点建议...
- java es sql groupby_使用 SQL 查询 ElasticSearch EsParser
- 云服务器CentOS7上安装Mysql,并使用Navicat连接的最简便快速方法
- ut-890/485-usb驱动 FOR Linux
- CocosCreator矢量绘图组件(2)
- Flask Restful 接口 - SqlAlchemy Marshmallow
- 1.MySQL增删改查(初阶)
- 技术人员近业务,会困死在一条船上吗?
- 黑马程序员-Linux系统编程-01
- 【JAVA-UT】2、写UT的科学步骤
- 小技巧|CSS如何实现文字两端对齐
- 转一首普希金的诗,给郁闷的日子煽煽情!
- Json解析-和风天气
- SMB实现共享文件(上传、下载)
- 《写给大家看的设计书》总结
- opencv简单方式红绿灯状态识别
热门文章
- 随机采样和随机模拟:吉布斯采样Gibbs Sampling实现文档分类
- Machine Learning - XVIII. Application Example Photo OCR应用实例-照片OCR(Week10)
- 终端terminal个性化配置
- pandownload获取bdstoken失败怎么回事_巴菲特点透中国股市:假如你手中持有的股票早上快速拉高然后慢慢下跌,你晓得是怎么回事吗?...
- MySQL8.0.12 EXPLAIN EXTENDED 报错问题
- 一张纸厚度是多少毫米_科学有意思 |一张纸对折,最多只能折9次?不信你试一试...
- 《Flutter 从0到1构建大前端应用》读后感—第4章【事件处理】
- Linux驱动设置log打印开关
- VS、C#配置R语言开发环境
- Python爬虫周记之案例篇——基金净值Selenium动态爬虫