5.TQ_ALWAYS_VALUE_USED_WHERE_NEVER_REQUIRED java
6.TQ_COMPARING_VALUES_WITH_INCOMPATIBLE_TYPE_QUALIFIERS web
7.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_ALWAYS_SINK 工具
8.TQ_EXPLICIT_UNKNOWN_SOURCE_VALUE_REACHES_NEVER_SINK spa
9.TQ_MAYBE_SOURCE_VALUE_REACHES_ALWAYS_SINK .net
10.TQ_MAYBE_SOURCE_VALUE_REACHES_NEVER_SINK orm
11.TQ_NEVER_VALUE_USED_WHERE_ALWAYS_REQUIRED blog
12.TQ_UNKNOWN_VALUE_USED_WHERE_ALWAYS_STRICTLY_REQUIRED 索引
今天這個比較有意思。ci
從JSR-305提及,findbugs的老大馬里蘭大學的Bill Pugh (William Pugh)牽頭制訂了JSR-305做爲一套註解標準,用來幫助靜態分析工具處理代碼,開始不少大廠都在響應,不過這個標準不少年沒更新了(since 11 Sep, 2006),並且跟JSR-308有很像,並且Java8裏彷佛都沒有包含JSR-305。get
有興趣的,能夠參考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): 變量在須要帶有類型修飾符的地方卻沒有帶有這個類型修飾符 |
休眠的標準,例子就不舉了~