從Java 5.0起,您可以使用java.lang.SuppressWarning
注釋,來停用與編譯單元子集相關的編譯警告
作用:用於抑制編譯器產生警告信息。
Idea 設置泛型檢查,變量、方法未使用檢查
從 eclipse 轉換到idea 發現有很多不習慣的地方,比如說
String s;
List list = new ArrayList();
沒有未使用的變量,未檢查泛型,未使用的方法提示,特意查找了一下相關資料
設置泛型檢查
我使用的是mac電腦,windows電腦應該類似
打開如圖
會出現如下頁面
選擇 editor —> inspections —> 搜索 Raw use of —> 勾上 Raw use of parameterized class
效果如圖:
設置變量未使用提示
打開如圖:
出現如下頁面
在 Editor —> General —> Errors and Warnings —> 選擇 Unused symbol
**右側勾選上 Error stripe mark 和 Effects 下面選擇 Underwaved波浪線 **
參考:
https://blog.csdn.net/Lovincc/article/details/80464782
https://blog.csdn.net/codejas/article/details/78657560
變量未使用產生的警告
如上設置完成之后,變量未使用的提示應該是這樣的:
如圖 , list、set、map 都未被使用
1.為未使用的變量設置SuppressWarning
在方法前添加
@SuppressWarning("unused")
能夠越過變量未使用檢查,@SuppressWarning 中的屬性我們稍后再討論。
2.對未使用的方法添加SuppressWarning跳過方法未調用檢查
可以在方法上添加SuppressWarning 跳過對方法未使用的檢查
3.為單行泛型添加SuppressWarning 跳過泛型檢查
在單個泛型代碼上添加@SuppressWarning("rawtypes")可以跳過泛型檢查,但是需要注意: 還需要在方法上添加
@SuppressWarning("unchecked")注釋
如上圖所示,可以對單個泛型設置@SuppressWarning 跳過類型檢查
4. 為方法體上添加SuppressWarning 跳過泛型檢查
如果一個方法體上含有多個未被檢查的泛型,需要在方法體上添加@SuppressWarning(value={"unchecked","rawtypes"}) 跳過泛型檢查
如圖所示:
也可以使用 @SuppressWarning("all") ,來跳過所有的檢查。
5.@SuppressWarning 中的屬性介紹以及屬性說明
- all,抑制所有警告
- boxing,抑制與封裝/拆裝作業相關的警告
- cast,抑制與強制轉型作業相關的警告
- dep-ann,抑制與淘汰注釋相關的警告
- deprecation,抑制與淘汰的相關警告
- fallthrough,抑制與switch陳述式中遺漏break相關的警告
- finally,抑制與未傳回finally區塊相關的警告
- hiding,抑制與隱藏變數的區域變數相關的警告
- incomplete-switch,抑制與switch陳述式(enum case)中遺漏項目相關的警告
- javadoc,抑制與javadoc相關的警告
- nls,抑制與非nls字串文字相關的警告
- null,抑制與空值分析相關的警告
- rawtypes,抑制與使用raw類型相關的警告
- resource,抑制與使用Closeable類型的資源相關的警告
- restriction,抑制與使用不建議或禁止參照相關的警告
- serial,抑制與可序列化的類別遺漏serialVersionUID欄位相關的警告
- static-access,抑制與靜態存取不正確相關的警告
- static-method,抑制與可能宣告為static的方法相關的警告
- super,抑制與置換方法相關但不含super呼叫的警告
- synthetic-access,抑制與內部類別的存取未最佳化相關的警告
- sync-override,抑制因為置換同步方法而遺漏同步化的警告
- unchecked,抑制與未檢查的作業相關的警告
- unqualified-field-access,抑制與欄位存取不合格相關的警告
- unused,抑制與未用的程式碼及停用的程式碼相關的警告
后記: @SuppressWarning 注解的主要作用就是抑制編譯時期所產生的警告,從而提高程序的可讀性,對於上面 @SuppressWarning 的所有屬性,讀者不用全部記憶,讀兩遍加深印象即可。用到的時候從google或者本文章都可查詢