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): 变量在需要带有类型修饰符的地方却没有带有这个类型修饰符  | 
  
休眠的标准,例子就不举了~
原文:http://my.oschina.net/u/921876/blog/399077