@Target表示这个注解的作用域,即可以作用在什么上。
用法:@Target({ElementType.METHOD})
其中METHOD就表示该注解可以修饰方法
另外作用范围有
TYPE 可用于类或者接口上
ANNOTATION_TYPE 可用于注解类型上(被@interface修饰的类型)
CONSTRUCTOR 可用于构造方法上
FIELD 可用于域上
LOCAL_VARIABLE 可用于局部变量上
PACKAGE 用于记录java文件的package信息
PARAMETER 可用于参数上
@Retention表示这个注解的生命周期,即可以存活到什么时候
用法:@Retention(RetentionPolicy.RUNTIME)
其中RUNTIME就表示该注解在程序跑起来的时候都还活着,另外还有两种短命的
1.SOURCE:在源文件中有效(即源文件保留)
2.CLASS:在class文件中有效(即class保留)
才疏学浅,浅尝辄止