1.注解:
有助于减轻编写“样板”代码的负担
更加干净易读的代码
编译器类型检查等
2.
注解分类:
标准注解:3种
元注解:4种
自定义注解
三种标准注解:
@Override 方法覆盖
@Deprecated 如果程序员使用了注解为它的元素,那么编译器会发出警告信息
@SuppressWarning 关闭不当的编译器警告
四种元注解:专门负责新注解的创建
@Target:注解应用的地方:ElementType.XXX
METHOD 方法声明
TYPE 类,接口,enum声明
FIELD 域声明(包含enum实例)
PARAMETER 参数声明
PACKAGE 包声明
LOCAL_VARIABLE 局部变量声明
@Retention:注解使用的级别:RetentionPolicy.XXX
SOURCE (被编译器丢弃)
CLASS (在class文件中可用,但会被VM丢弃)
RUNTIME (VM将在运行期也保留注释,因此可以通过反射机制读取到注解的信息)
@Documented 是否包含在Javadoc中
@Inherited 允许子类继承父类中的注解
自定义注解:
注解类定义
代码中加注解
注解处理器(反射)
3.
多注解,每个注解只关注一件事
注解不支持继承,支持嵌套(类似于组合)
使用apt处理注解:apt可以为每一个发现它的注解生成一个正确的注解处理器