JDK新特性-----注解@ (@Override、@Deprecated、@SuppressWarings)

注解—@Override 准确覆写

为什么会有@Override?

如果子类Student需要覆写父类Object的toString方法:

  class Student
{
    public String tostring()  //希望覆写toString,但是并没有报错
    {
        return "学生好好学习";
    }
}
public class Annotation
{
    public static void main(String[] args)
    {
        Student s=new Student();
        System.out.println(s); //CODE.Java新特性.Student@4554617c  输出的对象地址,并美有覆写成功
    }
}

可以看出并没有覆写成功。
@Override 是 当子类覆写父类方法时,此注解检查覆写的方法是否正确声明,只有满足覆写方法要求才会编译通过,否则编译出错。

@Override作用:
当用了@Override 会检查覆写方法声明正确性:
在这里插入图片描述
覆写方法声明正确编译不会报错:
在这里插入图片描述

注解----@Deprecated 过期声明

为什么要有@Deprecated?
一个很简单例子,qq从98年开发,到现在有很多版本,但是之前的版本依然可以使用,对于旧版本中的一些类新版本不会删掉,而是在新版本扩展的时候不再去使用这个不建议的类,所以加一个过期的注解(@Deprecated)。

////@Deprecated
class Student
{
    private String name;
    @Deprecated
    public Student() //声明该方法不建议使用,但是使用也不会报错
    {}
    public Student(String name)
    {
        this.name=name;
    }
    @Deprecated
    public void print()
    {
        System.out.println(this.name);
    }
}
public class Annotation
{
    public static void main(String[] args)
    {
        Student s1=new Student(); //表示该构造方法不建议使用,但是使用也不会报错
        s1.print(); //null
        Student s2=new Student("pick");
        s2.print(); //表示该方法不建议使用,使用也会实现原本功能

    }
}

建议用户不使用原有的类或者方法时,可以在类或方法上@Deprecated表示在当前版本中不推荐使用。
一般过期处理会在源代码中出现,只要一个名称上出现一条横线表明该方法或类被过期处理。

注解----@SuppressWarings 压制警告

首先,调用某些操作可能产生问题的时候会出现警告信息,警告不是错误,比如声明的变量没有使用,会有警告,当加上@SuppressWarings ,就没有警告:

///@SuppressWarings  压制警告
        public class Annotation
        {
            public static void main(String[] args)
            {

        @SuppressWarnings( "unused" )  //加上压制警告,就不会有警告
        int a;  //变量a没有使用,会有警告
    }
}

猜你喜欢

转载自blog.csdn.net/sophia__yu/article/details/83828034
今日推荐