Java中的SuppressWarnings注解使用
@SuppressWarnings 注解
@SuppressWarnings: 抑制編譯器警告
如下,可以看到idea中有警告的顏色標注

當我們不希望看到這些警告的時候,可以使用 SuppressWarnings注解來抑制警告信息
在{" "} 中,可以寫入你希望抑制(不顯示)警告信息
在idea中可以看到這些警告的信息,然后根據下面的屬性介紹依次填入對應的抑制警告的參數,如:

rawtypes,抑制與使用raw類型相關的警告

unchecked,抑制與未檢查的作業(yè)相關的警告

unused,抑制與未用的程式碼及停用的程式碼相關的警告
可以從下面的警告參數中找到對應的警告參數即可??梢钥吹骄嫒勘灰种屏?/p>

當然,也可以直接選擇參數 all,警告就全部會被抑制

關于SuppressWarnings 作用范圍是和放置的位置相關
比如 @SuppressWarnings放置在 main方法,那么抑制警告的范圍就是 main,通常我們可以放置具體的語句、方法、 類。
@SuppressWarnings注解的常見的值unchecked是忽略沒有檢查的警告rawtypes是忽略沒有指定泛型的警告(傳參時沒有指定泛型的警告錯誤)unused是忽略沒有使用某個變量的警告錯誤@SuppressWarnings可以修飾的程序元素,查看 @Target
查看源碼:
(1) 放置的位置就是 TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE
(2) 該注解類有數組 String[] values() ,設置一個數組比如 {"rawtypes", "unchecked", "unused"}

生成@SupperssWarnings時,不用背,直接點擊左側的黃色提示,就可以選擇(注意可以指定生成的位置)
@SuppressWarning 中的屬性介紹以及屬性說明
all:抑制所有警告boxing:抑制與封裝/拆裝作業(yè)相關的警告cast:抑制與強制轉型作業(yè)相關的警告dep-ann:抑制與淘汰注釋相關的警告deprecation:抑制與淘汰的相關警告fallthrough:抑制與switch陳述式中遺漏break相關的警告finally:抑制與未傳回finally區(qū)塊相關的警告hiding:抑制與隱藏變數的區(qū)域變數相關的警告incomplete-switch:抑制與switch陳述式(enum case)中遺漏項目相關的警告javadoc:抑制與javadoc相關的警告nls:抑制與非nls字串文字相關的警告null:抑制與空值分析相關的警告rawtypes:抑制與使用raw類型相關的警告resource:抑制與使用Closeable類型的資源相關的警告restriction:抑制與使用不建議或禁止參照相關的警告serial:抑制與可序列化的類別遺漏serialVersionUID欄位相關的警告static-access:抑制與靜態(tài)存取不正確相關的警告static-method:抑制與可能宣告為static的方法相關的警告super:抑制與置換方法相關但不含super呼叫的警告synthetic-access:抑制與內部類別的存取未最佳化相關的警告sync-override:抑制因為置換同步方法而遺漏同步化的警告unchecked:抑制與未檢查的作業(yè)相關的警告unqualified-field-access:抑制與欄位存取不合格相關的警告unused:抑制與未用的程式碼及停用的程式碼相關的警告
@SuppressWarnings 注解常見用法
使用場合
@SuppressWarnings注解,主要用于抑制編譯器報出的warning信息。
比如在idea中,如果某個方法的返回值沒有被使用,idea在語法檢查時,會把這個方法標記為陰影狀態(tài),鼠標懸停后會顯示對應的原因。

如果此時我覺得這個返回值是必要的,只是暫時還沒用到,就可以加一個@SuppressWarnings注解,抑制警告信息。

當然,不是每時每刻都需要解決warning。一般會在提交代碼前做一個檢查,例如用idea的gui提交到git倉庫時,默認會對我們的修改做一個檢查,如果有warning信息會提示我們修改。
注解介紹
@SuppressWarnings注解可標注于類、屬性、方法、參數構造函數、局部變量上。
一般需滿足最小范圍原則,即如果警告信息來自于某個方法時,則將此注解標注與該方法上,而不要標注于范圍更大的類上。
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
String[] value();
}注解只有一個value值,用于接收warning的類型,下面列舉常見的value。
value常見取值
UnusedReturnValue
作用:抑制 “方法的返回值未被使用”警告
示例:
@SuppressWarnings("UnusedReturnValue")
int batchInsert(@Param("lists") List<T>lists, Class<T>clazz);unused
作用:抑制“方法或者變量未被使用”警告
示例:
@SuppressWarnings("unused")
public <T> String getByPrimaryKey(Object key, Class<T> clazz) {unchecked
作用:抑制“未經檢查的類型轉化”警告
示例:

all
作用:抑制所有的報錯
盡量遵守“最小范圍”原則,一般情況下不要用。
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
解決spring-integration-mqtt頻繁報Lost connection錯誤問題
這篇文章主要介紹了解決spring-integration-mqtt頻繁報Lost connection錯誤問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
jdk8?FunctionalInterface注解源碼解讀
這篇文章主要介紹了jdk8?FunctionalInterface注解源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-11-11

