一篇文章带你搞定 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

@SuppressWarnings 注释的功能主要用来压制警告

比如 泛型操作时 ,如果在一个类声明时没有指明泛型,则肯定在编译时产生,那么此时就可以用 @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();
    }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值