Java 自定义注解
定义格式:@interface注解名
使用格式:@注解名(属性名=属性值...)
注解:用来贴在类/方法/变量上的一个标签,也可以说是用来修饰它们的
注解贴在程序元素上,想要拥有某一些功能,就必须有三个角色参与:
1.注解本身
2.被贴的程序元素
3.第三方程序,使用反射给注解赋予功能
元注解:自定义注解的时候用来贴在注解上的注解,用来限定注解的用法
@Target:表示作用范围位置(类,方法,构造器,变量等),通过ElementType枚举封装位置常量
@Retention:表示注解的保存时期,封装在RetentionPolicy枚举类中。
它拥有三个时期,SOURCE 源码时期:编译之后不存在,CLASS 字节码时期:运行时期不存在,RUNTIME运行时期:一直存在。一般自定义注解选用RUNTIME
@Documented:使用该注解标注的标签会保存到API文档中。
@Inherited:该注解标注的标签可以被子类继承。
一般的情况下只会用到@Target和@Retention注解。
@Target(ElementType.METHOD) //作用范围为METHOD贴在方法上,ElementType该类型储存的是一个数组,可以定义多个范围 @Retention(RetentionPolicy.RUNTIME) //注解的保存时期为RUNTIME 运行时期 public @interface Permission { String expression() default ""; //使用default定义默认值,是根据当前属性类型的 }

浙公网安备 33010602011771号