14.1 基本Annotation
Annotation是一个接口,可以通过反射来获取指定程序元素的Annotation对象,
然后通过Annotation对象来取得注释里的元数据,访问和处理Annotation的工具统称APT
4个基本Annotation:
@Override指定方法覆载(强制编译器检查子类必须覆盖父类方法,避免参数错误导致编译正确)
只能修饰方法
@Deprecated表示某个程序元素(类、方法等)已过时,当其他程序使用已过时的类、方法时,编译器将给出警告
修饰方法、类、接口
@SuppressWarnings取消显示指定的编译器警告,并且会一直作用于该元素的子元素
@SafeVarargs抑制堆污染警告 Java7才出现
把一个不带泛型的对象赋值给一个带泛型的变量,往往会发生这种堆污染
Java不支持泛型数组
14.2 JDK的元Annotation
元Annotation用于修饰其他的Annotation定义
_@_Retention
_@_Target
_@_Documented
_@_Inherited
自定义新的Annotation类型使用@interface关键字 P649
根据Annotation是否可以包含成员变量,可以把Annotation分为两类:
1标记Annotation,没有定义成员变量;仅利用自身的存在与否来提供信息
2元数据Annotation ,定义了成员变量,可以接受更多元数据