1. Annotation是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。通过使用Annotation,程序开发人员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充的信息。
2. Annotation可以用来修饰包,类,构造器,方法,成员变量,参数,局部变量的声明,这些信息存储在Annotation的name = value 对中。
3. Annotation是一个接口,可以使用反射获取指定程序元素的Annotation对象。
4. Annotation可以在运行时起一定作用,但需要某种配套的工具对Annotation进行访问和处理,APT(Annotation Processing Tool)。
5. @Overrid只能作用于方法,作用是告诉编译器检查这个方法,并从父类检查是否包含一个被该方法重写的方法。
6. @Deprecated,用于标识某个程序元素已过时。
7. @SuppressWarnings,取消显示指定的编译器警告。
8. 自定义Annotation public @interface MyTag,和接口类似
9. 根据Annotation是否包含成员变量,分为标记Annotation,和元数据Annotation。
10. 元Annotation,修饰其他Annotation定义。
Retention:用于指定Annotation可以保留多长时间。值可以取RetentionPolicy.CLASS,RUNTIME,SOURCE
Target:用于指定被修饰的Annotation能用于修饰哪些程序元素。
Documented:用于指定被修饰的Annotation类将被JavaDoc工具提取成文档
Inherited:指定被修饰的Annotation具有继承性。