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定义默认值,是根据当前属性类型的
}

 

posted @ 2021-02-23 17:40  MKwar  阅读(79)  评论(0)    收藏  举报
Live2D