Java中的注解Annotation

基本Annotation

  • @Override
  • @Deprecated
  • @SuppressWarnings
  • @SafeVarargs

@Override用来指定方法重载,它可以强制一个子类必须覆盖父类的方法。

  • 主要是帮助我们避免一些低级错误,例如:父类中有个run()方法,子类中的方法名不小心写成了runn(),在程序编译时候会报错提示。
  • 只能作用于方法,不能作用于其他程序元素。

@Deprecated用于表示某个元素(类、方法等)已过时,当其他程序使用已过时的类、方法时,编译器将会给出警告。

  • 虽然出现警告,但不影响使用,使用还是可以使用的
//父类,其中标记为test()方法是过时方法。
public class SupperClass {
    @Deprecated
    public void test(){
        System.out.println("我是父类过时方法test");
    }
}

//子类调用是,编译会警告提示,方法已经过时。
public class SonClass extends SupperClass{
    public static void main(String[] args) {
        SonClass sonClass = new SonClass();

sonClass.test();//提示方法已过时

    }
}

@SuppressWarnings指示被该Annotation修饰的程序元素(以及该程序的所有子元素)取消显示指定的编译器警告。

  • 如果使用了带@Deprecated注释的方法,编译器将在调用此方法的地方出现警告信息。将@SuppressWarnings("deprecation")放在调用过时方法的那个类上,则警告信息去掉。
public class SupperClass {
    @Deprecated
    public void test(){
        System.out.println("我是父类过时方法test");
    }
}

@SuppressWarnings("deprecation")//加上此注解,调用过时方法的警告提示消失
public class SonClass extends SupperClass{
    public static void main(String[] args) {
        SonClass sonClass = new SonClass();
        sonClass.test();
    }
}

SafeVarargs在声明具有模糊类型(比如:泛型)的可变参数的构造函数或方法时,Java编译器会报unchecked警告。

  • 这类情况,如果确定声明的构造函数和方法的主体不会对其varargs参数执行潜在的不安全的操作,可使用@SafeVarargs进行标记,这样的话,Java编译器就不会报unchecked警告。
  • 对于非static或非final声明的方法,不适用,会编译不通过。如果要抑制unchecked警告,可以使用@SuppressWarnings注解:@SuppressWarnings("unchecked")
程序员地瓜哥的小屋 文章被收录于专栏

IT相关技术学习

全部评论

相关推荐

01-23 14:54
同济大学 Java
热爱敲代码的程序媛:给你提几点【专业技能】这个模块里面可优化的地方:1.【具备JVM调优经验】可以去b站上搜一下JVM调优的视频,估计一两个小时凭你的学习能力就能掌握JVM调优的实践方面的技能。2.【MySql优化】MySql这一栏,你去b站或者找个博客看看MySql优化,学一下,如果你本身比较熟悉MySql语句的话,那基本半天时间凭你的学习能力MySql语句优化方面的技能你也能掌握个差不多。以上1,2两点主要是因为我看你专业技能大部分都说的是偏理论,没有写应用。再就是最后,你结合你的项目,想一想你的项目中哪些sql语句是可以用MySql优化的,到时候你面试的时候也好结合着说一下。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务