元注解
一、@Target
注解的注解,指定注解针对的目标
ElementType——针对的类型
ElementType.TYPE -> 针对类、接口
ElementType.FIELD -> 针对成员变量
ElementType.METHOD -> 针对成员方法
ElementType.PARAMTER -> 针对方法参数
ElementType.CONSTRUCTOR -> 针对构造器
ElementType.PACKAGE -> 针对包
ElementType.ANNOTATION_TYPE -> 针对注解
二、@Retention 指定注解的保留域
指定注解的存活时间
RetentionPolicy.SOURCE -> 源代码级别,由编译器处理,处理之后不再保留
RetentionPolicy.CLASS -> 注解信息保留到类对应的class文件中
RetentionPolicy.RUNTIME -> 由JVM读取,运行时使用
注解仅仅是一个标识,并不会完成具体的功能;在程序的各个期间通过反射机制去执行想要实现的功能。
反射
在程序运行期间动态创建对象
编写代码/编译的过程,不知道要创建的是哪个对象
只有在运行期间才知道要创建的对象是谁
动态获取类的信息,从而创建对象
注解是结合反射来运行,注解只是相当于一个标识,不做具体的操作,具体操作是通过反射来完成的