@SuppressWarnings注解的使用


Java編譯器在編譯代碼時,會產生一些安全警告信息。如果被@SuppressWarnings注解標記的元素,就可以告訴編譯器抑制指定的警告。

先看看@SuppressWarnings注解在Java SE中的聲明:

package java.lang;

import java.lang.annotation.*;
import static java.lang.annotation.ElementType.*;

@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE)
public @interface SuppressWarnings {
    String[] value();
}

由Java源代碼聲明我們了解到:@SuppressWarnings注解,可用於標記類、字段、方法、參數、構造方法和本地變量,並且它只在編譯期生效,不會保留在class文件中。此注解聲明的注解元素為String數組,意味着可以抑制多種警告。

 接下來舉例說明@SuppressWarnings注解的使用:

package org.springmorning.demo.javabase.annotation.pre;

import java.util.*;

/**
 * @author 春晨
 * @date 2019/1/18 9:36
 * Copyright ©2019 春晨 https://www.cnblogs.com/springmorning/p/10284244.html
 */
public class SuppressWarningsAnnotation {

    //此處聲明了未經檢查的操作方法
    @SuppressWarnings("unchecked")
    public List toList(Collection c) {
        List list = Arrays.asList(c.toArray());
        Collections.sort(list);
        return list;
    }

    @SuppressWarnings({"deprecation","unchecked"})
    public static void main(String[] args) {
        SuppressWarningsAnnotation overrider = new SuppressWarningsAnnotation();
        ArrayList<String> list = new ArrayList<String>();
        list.add("A");
        list.add("B");
        list.add("C");
        //此處使用了棄用的操作方法
        Date = new Date("20190118");
        //此處使用了未經檢查的操作方法
        List sortedList = overrider.toList(list);
    }

}

如果以上把@SuppressWarnings標記注釋掉,在編譯時就會報unchecked警告和deprecation警告:

加上@SuppressWarnings注解,再編譯,警告被抑制:

 

下節繼續

    下節將給大家講解預定義注解@SafeVarargs的使用

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM