在Java中,根据注解的使用方法和用途,可将注解分红3类,分别是
java
内建注解(也称为基本注解),定义于java.lang包下数组
元注解(Meta Annotation)app
自定义注解eclipse
在JDK5.0及以上的版本的java.lang包下提供了3种标准的注解类型,分别是ide
@Override:ui
@Deprecatedspa
@SuppressWarnings
code
@Override被用做标方法,它说明了被标的方法重写了父类的方法。blog
一、它的使用方法很简单,只要在重写的子类方法前加上@Override便可,以下代码所示ip
1
2
3
4
5
|
public
class
Fruit {
public
void
getObjectInfo(){
System.out.println(
"水果的getObjectInfo方法"
);
}
}
|
1
2
3
4
5
6
|
public
class
Apple
extends
Fruit {
@Override
public
void
getObjectInfo() {
System.out.println(
"苹果重写水果的getObjectInfo方法"
);
}
}
|
二、若是不是重写父类的方法,而使用了@Override注解,会在编译报错
所以@Override常常用于防止重写父类方法时方法名拼写错误,
三、另外,特别注意,@Override只能用于修饰方法,而不能用于修饰其余程序元素!
用于表示某个程序元素(类、方法、成员变量等)已过期,编译器将再也不喜欢使用这个被标的程序元素。
若是使用(不管是当前类仍是其余包下的类使用),编译则会在该程序元素上画一条斜线,表示程序元素已过期。
@SuppressWarnings注解表示阻止编译器警告,被用于有选择地关闭编译器对类、方法和成员变量等程序元素及其子元素的警告。
@SuppressWarnings会一直做用于该程序元素的全部子元素
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
@SuppressWarnings
({
"unchecked"
,
"rawtypes"
})
public
class
Apple
extends
Fruit {
@Override
public
void
getObjectInfo() {
System.out.println(
"苹果重写水果的getObjectInfo方法"
);
}
public
void
printObject(){
Apple apple =
new
Apple();
List list =
new
ArrayList();
list.add(apple);
}
}
|
@SuppressWarnings("unchecked")注解来标识Apple类取消类型检查编译器警告
rawtypes:是eclipse 3.6自带的注解,传参时也要传递带泛型的参数
deprecation:编译器将取消使用了过期程序元素的警告
unchecked:取消执行了未检查的转换
unused:取消某程序元素未被使用的警告
fallthrough: 取消当swithc 程序块直接通往下一种状况而没有break时的警告
path: 取消在类路径、源文件路径等中有不存在的路径时的警告
serial :取消当在序列化的类上缺乏serialVersionUID定义时的警告
finally :取消当有finally子句不能正常完成时的警告
all: 取消全部状况的警告
当注解类型里只有一个value成员变量,使用该注解时能够直接在注解后的括号中指定value成员变量的值,而无须使用name=value结构对的形式。
当注解类型里有多个value成员变量,可使用大括号
1
2
3
4
|
@SuppressWarnings
({
"serial"
,
"unchecked"
})
public
class
Apple
extends
Fruit
implements
Serializable{
...
}
|
使用注解时要在其前面加一个“@”符号,同时将注解做为修饰符使用。
1
|
@+AnnotationName+(..逗号分割的多个name..)
|
其中value值必须为编译时常量、内嵌的Annotation或数组。若是注解类型定义了某个NAME的默认值,则这个结构对参数能够被省略。
1
2
3
4
|
@Override
public
void
getObjectInfo() {
System.out.println(
"苹果重写水果的getObjectInfo方法"
);
}
|
1
2
3
4
5
6
|
@SuppressWarnings
(value=
"unused"
)
public
static
void
main(String[] args) {
Apple apple =
new
Apple();
apple.printObject();
List<Apple> apples;
}
|
1
2
3
|
@SuppressWarnings
({
"serial"
,
"unchecked"
})
public
class
Apple
extends
Fruit
implements
Serializable{
}
|