后端开发 \ Java \ JDK新特性-----注解@ (@Override、@Deprecated、@SuppressWarings)

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

总点击23
简介:注解—@Override准确覆写 为什么会有@Override? 如果子类Student需要覆写父类Object的toString方法:

注解—@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 会检查覆写方法声明正确性:


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


覆写方法声明正确编译不会报错:


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

注解----@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没有使用,会有警告

}

}

意见反馈 常见问题 官方微信 返回顶部