一、Annotation简介
- 从Java1.5开始,Java增加了元数据(MetaData)的支持,也就是Annotation(注释);
- Annotation能被用来为程序元素(类、方法、成员变量等)设置元数据;
- Annotation不能影响程序代码的执行,无论添加、删除Annotation,代码始终如一的执行;
- 如果希望让程序中的Annotataion能在 运行时其一定作用,只有通过某种配套的工具对Annotation中的信息进行访问和处理,这些工具统称APT(Annotion Processing Tool);
二、三个基本的Annotation如下:
@Override:限定重写父类方法
- 用来指定方法覆盖的,它可以强制一个子类必须要覆盖父类的方法;
- 只能用作于方法,不能用于作用其他程序元素;
- 主要是帮助我们避免一些低级错误;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public class Fruit {
public void foo(){
System.out.println( "水果的info方法。。。" );
}
}
class Apple extends Fruit
{
//使用@Override指定下面方法必须重写父类方法
@Override
public void foo() {
System.out.println( "苹果重写水果的info方法..." );
}
}
|
@Deprecated:标记已过时
用于标识某个程序元素(类、方法等)已过时,当其他程序使用已过时的类、方法时,编译器将会给出警告;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Apple1{
//定义info方法已经过时
@Deprecated
public void info(){
System.out.println( "Apple的info方法" );
}
}
public class DeprecatedTest {
public static void main(String[] args) {
//下面使用info方法时将会被编译器警告
new Apple1().info();
}
}
|
@SuppressWarnings:抑制编译器警告
- 指示被Annotation标识的程序元素(以及在该程序元素中的所有字元素)取消显示指定的编译器警告;
- 一直作用于该程序元素的所有子元素;
1
2
3
4
5
6
7
8
9
|
//关闭整个类里的编译器警告
@SuppressWarnings (value= "unchecked" )
public class SuppressWarningsTest {
@SuppressWarnings ( "rawtypes" )
public static void main(String[] args) {
List<String> myList = new ArrayList();
myList.add( "java" );
}
}
|
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
原文链接:http://blog.csdn.net/p106786860/article/details/20807173