1. jdk自带的注解
@Override重写父类的方法,如果不重写父类的方法会给出警告
@Deprecated不建议被使用的方法
@SuppressWarnings("unchecked")将警告压制住
若要压制两个警告 ,则由数组构成,例如:@SuppressWarnings({"unchecked",“deprecation”})
2.自定义注解
1 public @Interface AnnotationTest()
{
String value() default “World”;
}
除了value以外的其他值,例如value1,在使用注解时必须使用value1 = “Hello”的形式
2 如果有两个注解参数,无需考虑顺序,中间用,隔开就行, 注意类型匹配
3 我们自定义的注解隐含的继承了java.lang.Annotation接口;如果我们定义了一个接口继承了Annotation,它还是一个接口,而不是注解。Annotation本身是接口而不是注解。
<可以与Enum类比>。
3 @Interface Retention与 Enum RetentionPolicy
1 RetentionPolicy为SOURCE的例子是@SuppressWarnings仅在编译期间压制警告,所以不必将这个信息存储与.class档案中
2 RetentionPolicy为RUNTIME的时机
Class,Method等等都实现了同一个接口AnnotatedElmment,所以获取这些对象之后就可以调用AnnotatedElmment中的方法,例如Method对象.isAnnotationPresent(注解),返回一个boolean值
我们可以以反射的方法将被@Retention( RetentionPolicy.RUTIME)修饰的注解读取过来,而CLASS和SOURCE则不行
4 @Target与Enum ElementType
例如@Target(ElementType.METHOD)的意思是被这个修饰的注解只能修饰方法
5 生成帮助文档 点Project中的javadoc,需要自己吧注解加入文档中 @Documented