java注解定义和使用详解

xiaoxiao2021-02-27  127

注解与元注解:

注解:用来贴在类/方法/变量等之上的一个标记,第三方程序可以通过这个标记赋予一定功能.

元注解:在定义注解的时候用来贴在注解上的注解,用来限定注解的用法.元注解有四个:@Retention,@Target,@Documented,@Inherited

@Retention:决定注解可以保存到哪个时期,有三个都封装在枚举RententionPolicy中:

               RetentionPolicy.SOURCE       表示注解只存在源文件中,不会被编译到字节码中

               RetentionPolicy.CLASS           表示注解会被编译到字节码中,但是jvm不加载注解

               RetentionPolicy.RUNTIME      表示注解会被编译到字节中,会随着字节码的加载而进入jvm

我们开发中自定义的注解的有效期都要使用RUNTIME,这样才能在程序运行时使用反射赋予注解功能.

@Target:决定了该注解可以贴在什么地方,都封装在枚举ElementType中,常用的如下:

              ElementType.FIELD                  贴在字段上(包括枚举常量)

              Element.METHOD                    贴在方法上

              Element.TYPE                           贴在类上,接口或枚举上

@Documented:表示注解会被javadoc指令编辑到api中

@Inherited:表示注解会遗传给子类

注解的定义和使用:

定义注解的语法:使用 @interface  注解名称

   例如:   public  @interface  VIP{

                      //抽象方法   属性

              }

注解的抽象方法称为属性,如果要给属性赋予默认值可以在抽象方法后使用default值

使用注解语法:@注解名(属性名=属性值,属性名=属性值)

如果只有一个属性,并且名称叫做value的话,那么可以省略value不写

另外,属性的返回值类型只能是基本类型/枚举/Class/注解/String/以及他们各自的数组

我们还可以通过反射获取注解,从而实现自己编写权限模块的功能.

转载请注明原文地址: https://www.6miu.com/read-13900.html

最新回复(0)