1.4 @SuppressWarnings:抑制编译器警告
Java 中的 @SuppressWarnings 注解指示被該注解修飾的程序元素(以及該程序元素中的所有子元素)取消顯示指定的編譯器警告,且會一直作用于該程序元素的所有子元素。例如,使用 @SuppressWarnings 修飾某個類取消顯示某個編譯器警告,同時又修飾該類里的某個方法取消顯示另一個編譯器警告,那么該方法將會同時取消顯示這兩個編譯器警告。
@SuppressWarnings 注解主要用在取消一些編譯器產生的警告對代碼左側行列的遮擋,有時候這樣會擋住我們斷點調試時打的斷點。如下圖所示。
如果你確認程序中的警告沒有問題,可以不用理會。通常情況下,如果程序中使用沒有泛型限制的集合將會引起編譯器警告,為了避免這種編譯器警告,可以使用 @SuppressWarnings 注解消除這些警告。
注解的使用有以下三種:
- 抑制單類型的警告:@SuppressWarnings(“unchecked”)
- 抑制多類型的警告:@SuppressWarnings(“unchecked”,“rawtypes”)
- 抑制所有類型的警告:@SuppressWarnings(“unchecked”)
抑制警告的關鍵字如下表所示。
| all | 抑制所有警告 |
| boxing | 抑制裝箱、拆箱操作時候的警告 |
| cast | 抑制映射相關的警告 |
| dep-ann | 抑制啟用注釋的警告 |
| deprecation | 抑制過期方法警告 |
| fallthrough | 抑制在 switch 中缺失 breaks 的警告 |
| finally | 抑制 finally 模塊沒有返回的警告 |
| hiding | 抑制相對于隱藏變量的局部變量的警告 |
| incomplete-switch | 忽略不完整的 switch 語句 |
| nls | 忽略非 nls 格式的字符 |
| null | 忽略對 null 的操作 |
| rawtypes | 使用 generics 時忽略沒有指定相應的類型 |
| restriction | 抑制禁止使用勸阻或禁止引用的警告 |
| serial | 忽略在 serializable 類中沒有聲明 serialVersionUID 變量 |
| static-access | 抑制不正確的靜態訪問方式警告 |
| synthetic-access | 抑制子類沒有按最優方法訪問內部類的警告 |
| unchecked | 抑制沒有進行類型檢查操作的警告 |
| unqualified-field-access | 抑制沒有權限訪問的域的警告 |
| unused | 抑制沒被使用過的代碼的警告 |
使用 @SuppressWarnings 注解示例代碼如下:
public class HelloWorld {@SuppressWarnings({ "deprecation" })public static void main(String[] args) {Person p = new Person();p.setNameAndAge("C語言中文網", 20);p.name = "Java教程";} }在 Eclipse 顯示如下圖所示。
上述代碼第 2 行使用 @SuppressWarnings({ “deprecation” }) 注解了 main 方法。在《Java @Deprecated注解》一節中的 Person 代碼中,這些 API 已經過時了,所以代碼第 4 行~第 6 行是編譯警告,但是在使用了 @SuppressWarnings 注解之后會發現程序代碼的警告沒有了。
總結
以上是生活随笔為你收集整理的1.4 @SuppressWarnings:抑制编译器警告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.3 @Deprecated注解
- 下一篇: 1.5 @SafeVarargs注解