(Java)系统内建的 Annotation

一、基本概念

系统建立了 3 个内建的 Annotation 类型,用户可以直接使用:

@Override: 覆写的Annotation.
@Deprecated: 不赞成使用的Annotation.
@SuppressW arnings: 压制安全警告的Annotation.

这里的 3 个 Annotation 全部是在 java.lang 包中定义的。因为此包在使用时是自动导入的,所以可以直接使用以上 3 个 Annotation。

3 种内定的 Annotation:
在这里插入图片描述

二、@Override

@Override 主要是在方法覆写时使用,用于保证方法覆写的正确性

class Person{
    public String getInfo(){
        return "这是一个类";
    }
}
class Student extends Person{ //子类继承父类
    @Override //此处明确指出方法覆写操作
    public String getInfo(){
        return "这是一个 Student";
    }
}
public class Test{
    public static void main(String[] args) {
        Person per = new Student();//通过子类实例化父类对象
        System.out.println(per.getInfo());
    }
}

此处在覆写的 getInfo() 方法前加上了 @Override 注释,目的主要是防止用户在覆写方法定义出错

同时 @Override 在使用时只能在方法上应用,而其他元素,如 类、属性等不能使用此 Annotation 的

二、@Deprecated

@Deprecated 注释的主要功能是用来声明一个不建议使用的方法,如果在程序中使用了此方法,则在编译时将出现警告信息

该方法除了可以在方法上声明外,还可以在类中也可以进行声明

@Deprecated 
class Person{//声明不建议使用的类
    @Deprecated //声明不建议使用的类
    public String getInfo(){
        return "这是一个 Person 类";
    }
}

public class Test{
    public static void main(String[] args) {
        Person per = new Person();
        System.out.println(per.getInfo());//编译时将出现警告信息
    }
}

在这里插入图片描述
虽然有警告信息,但是程序可以正常执行,因为该注释表示方法不建议使用,但不是不能使用。

三、@SuppressWarnings

@SuppressW arnings 注释的功能主要用来压制警告
比如 泛型操作时 ,如果在一个类声明时没有指明泛型,则肯定在编译时产生,那么此时就可以用 @SuppressWarnings 压制这种警告。

class Person<T>{
    private T var;//定义泛型变量

    public T getVar() {
        return var;
    }

    public void setVar(T var) {
        this.var = var;
    }
}

public class Test{
    @SuppressWarnings("unchecked")//压制主方法的警告信息
    public static void main(String[] args) {
            Person per = new Person();
    }
}

这里 @SuppressWarnings("unchecked") 注释的 uncharted,表示的是不检查,如果现在需要压制更多的警告信息,可以后面继续增加字符串,只是增加时,需要按照数组的格式增加:

@Deprecated//以下操作不建议使用
class Person<T>{
    private T var;//定义泛型变量

    public T getVar() {
        return var;
    }

    public void setVar(T var) {
        this.var = var;
    }
}

public class Test{
    @SuppressWarnings({"unchecked","depercation"})//压制两条警告信息
    public static void main(String[] args) {
            Person per = new Person();
            per.setVar("Java");
    }
}

这里同时存在了 泛型和不建议两种警告信息,但是由于使用了 @SuppressWarnings 注释,所以编译时不会出现任何警告信息。

@SuppressWarnings 中的关键字:
在这里插入图片描述
设置注释信息时,是以 key -> value 的形式出现的,所以 @SuppressWarnings 也可以直接使用 “value = {“unchecked”,“deprecation” }” 的方式设置:

public class Test{
    @SuppressWarnings(value = {"unchecked","depercation"})//压制主方法的警告信息
    public static void main(String[] args) {
        Person per = new Person();
    }
}
发布了613 篇原创文章 · 获赞 276 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/nanhuaibeian/article/details/104457969