基本注解:
@SuppressWarnings
@Deprecated
@Override
//压缩警告告诉javac编译器忽略方法过时
@SuppressWarnings
(
"dprecation"
)
public
static
void
main(String[] args) {
System.runFinalizersOnExit(
true
);
sayHello();
}
//把某个方法设成过时的
@Deprecated
public
static
void
sayHello(){
System.
out
.println(
"hello"
);
}
//对父类的重写
@Override
public
int
hashCode() {
final
int
prime = 31;
int
result = 1;
result = prime * result +
x
;
result = prime * result +
y
;
return
result;
}
总结:注解相当于一种标记,在程序中加了注解就等于为程序打上了某种标记,没加,就等于没有某种标记,以后javac编译器,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记,就是去干什么样的事。标记可以加在包、类、字段、方法、方法的参数以及局部变量上。
java.lang.Annotation包中有JDK提供的基本注解。
@Retention元注解:三种取值->
RetentionPolicy.SOURCE、RetentionPolicy.CLASS、RetentionPolicy.RUNTIME
分别对应:java源文件->class文件->内存中的字节码;这为注解的生命周期。
为注解增加基本属性:
数组类型的属性:
int[] arrayAttr() default {1,2,3}
@MFDAnnotation(arrayAttr={2,3,4})
如果数组属性中只有一个元素,这时候属性值部分可以省略大括号
枚举类型的属性:
EnumTest.TrafficLamp lamp();
@MFDAnnotation(lamp=
EnumTest.
TrafficLamp.GREEN
)
注解类型的属性:
MetaAnnotation annotationAtrr() default @MetaAnnotation("xxxx");
@MFDAnnotation(annotationAttr=@MetaAnnotation("yyyy"))
MetaAnnotation ma=myAnnotation.annotationAtrr();