Annotation是Java的一种特殊的注释语法。
内置的三个Annotation:
@Override、@Deprecated、@SuppressWarnings
@Override表示进行正确的覆写操作
package day10;
class Person
{
public String say()
{
return "人在说话";
}
}
class Student extends Person
{
@Override
public String say()
{
return "学生在说话";
}
}
public class OverDemo {
public static void main(String[] args) {
Person a = new Student();
System.out.println(a.say());
}
}
运行结果:学生在说话
Student类继承了Person类,并且覆写了其中的say()方法,如果在Person类中@Override下覆写的say()方法名称编写错误了,就肯定不是覆写了。这时如果没有@Override编译器仍然不会报错,当用Person去创建Student对象时调用的就只能是Person中的say()方法了。
@Deprecated表示不建议使用的操作
package day10;
class Info
{
@Deprecated
public String getInfo()
{
return "Hello";
}
}
public class TestInfo {
public static void main(String[] args) {
System.out.println(new Info().getInfo());
}
}
不使用@Deprecated时:
使用@Deprecated时:
运行结果:Hello
使用@Deprecated声明只是不建议使用,如果使用的话,只是会出现警告而已。例如线程中的stop()、resume()、suspend()等方法是不建议使用的。
@SuppressWarnings表示压制警告。如果有一些警告信息,用它可以压制掉,从而不出现警告的提示。
一般有以下几种:
@SuppressWarnings("unchecked")
告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。
· @SuppressWarnings("serial")
如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long
使用这个注释将警告信息去掉。
· @SuppressWarnings("deprecation")
如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。
使用这个注释将警告信息去掉。
· @SuppressWarnings("unchecked", "deprecation")
告诉编译器同时忽略unchecked和deprecation的警告信息。
· @SuppressWarnings(value={"unchecked", "deprecation"})
等同于@SuppressWarnings("unchecked", "deprecation")
参考书籍是人民邮电的《Java从入门到精通》,笔记中的部分例子和释义是基于这本书写的,也有一些来自网络。