public @interface xxx 定義注解
@interface 不是interface,是注解類
是jdk1.5之后加入的,java沒有給它新的關鍵字,所以就用@interface 這么個東西表示了
這個注解類,就是定義一個可用的注解,包括這個注解用於什么地方,是類,還是方法,還是property,還是方法入參等等
@Retention(RetentionPolicy.RUNTIME) // 注解會在class字節碼文件中存在,在運行時可以通過反射獲取到
@Target:注解的作用目標
@Target(ElementType.TYPE) //接口、類、枚舉、注解
@Target(ElementType.FIELD) //字段、枚舉的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法參數
@Target(ElementType.CONSTRUCTOR) //構造函數
@Target(ElementType.LOCAL_VARIABLE)//局部變量
@Target(ElementType.ANNOTATION_TYPE)//注解
@Target(ElementType.PACKAGE) ///包