1. 程式人生 > >註解用法詳解——@SuppressWarnings

註解用法詳解——@SuppressWarnings

作為一名有強迫症的程式設計師最見不得的事情之一就是程式裡有警告出現,還有一大困擾就是在eclipse IDE中,起碼前面有警告時會無法加入斷點。一般來講大多數警告是程式碼不規範或安全警告,這些警告基本都可以通過使程式碼規範嚴謹來解決。還有一些警告是無法去掉的,這時就可以通過@SuppressWarnings註解來去掉其他警告,今天就總結一下SuppressWarnings註解的使用。

在方法上加@SuppressWarnings註解就可以消除這些警告的產生,註解的使用有三種:

  1. @SuppressWarnings(“unchecked”) [抑制單型別的警告]
  2. @SuppressWarnings(“unchecked”,“rawtypes”) [抑制多型別的警告]
  3. @SuppressWarnings(“all”) [抑制所有型別的警告] 通過 @SuppressWarnings 的原始碼可知,其註解目標為類、欄位、函式、函式入參、建構函式和函式的區域性變數。為了程式碼規範,可讀性強,建議把註解放在最近進警告發生的位置。

下面列舉警告關鍵字:

關鍵字 用途
all to suppress all warnings (抑制所有警告)
boxing to suppress warnings relative to boxing/unboxing operations (抑制裝箱、拆箱操作時候的警告)
cast to suppress warnings relative to cast operations (抑制對映相關的警告)
dep-ann to suppress warnings relative to deprecated annotation (抑制啟用註釋的警告)
deprecation to suppress warnings relative to deprecation (抑制過期方法警告)
fallthrough to suppress warnings relative to missing breaks in switch statements (抑制確在switch中缺失breaks的警告)
finally to suppress warnings relative to finally block that don’t return (抑制finally模組沒有返回的警告)
hiding to suppress warnings relative to locals that hide variable (抑制相對於隱藏變數的區域性變數的警告)
incomplete-switch to suppress warnings relative to missing entries in a switch statement (enum case) (忽略沒有完整的switch語句)
nls to suppress warnings relative to non-nls string literals ( 忽略非nls格式的字元)
null to suppress warnings relative to null analysis ( 忽略對null的操作)
rawtypes to suppress warnings relative to un-specific types when using generics on class params ( 使用generics時忽略沒有指定相應的型別)
restriction to suppress warnings relative to usage of discouraged or forbidden references ( 抑制禁止使用勸阻或禁止引用的警告)
serial to suppress warnings relative to missing serialVersionUID field for a serializable class ( 忽略在serializable類中沒有宣告serialVersionUID變數)
static-access to suppress warnings relative to incorrect static access ( 抑制不正確的靜態訪問方式警告)
synthetic-access to suppress warnings relative to unoptimized access from inner classes ( 抑制子類沒有按最優方法訪問內部類的警告)
unchecked to suppress warnings relative to unchecked operations ( 抑制沒有進行型別檢查操作的警告)
unqualified-field-access to suppress warnings relative to field access unqualified ( 抑制沒有許可權訪問的域的警告)
unused to suppress warnings relative to unused code ( 抑制沒被使用過的程式碼的警告)