美文网首页
Annotation

Annotation

作者: 编程人生 | 来源:发表于2022-03-14 22:50 被阅读0次

注解与定义接口有点类似,都用interface , 不过注解的interface 前多了@. 另外, 它还有两个元注解@Target 和 @Retention 这两个注解专门用于定义注解本身.@Target 表示注解的目标,

ElementType 是一个枚举 ,主要的可选值有:

TYPE : 表示类 接口

FIELD: 字段  包括枚举常量

METHOD : 方法

PARAMETER: 方法中的参数

CONSTRUCTOR : 构造方法

LOCAL_VARIABLE: 本地变量

MODULE: 模块

Retention 表示注解信息保留到什么时候,取值只有一个, 类型是RetenionPolicy , 它是一个枚举, 有三个取值.

SOURCE: 只在源代码中保留,编译器代码编译为字节码文件后会丢掉.

CLASS : 保留到字节码文件中,但Java 虚拟机将class 文件加载到内存时不一定会在内存保留.

RUNTIME: 一直保留到运行时

如果没有声明@Retenion , 则默认为CLASS

与接口和类不同, 注解不能继承. 不过注解有一个与继承有关的元注解@Inherited

查看注解信息

//查看所有的注解

public Annotation[] getAnnotation()

//获取所有本元素上声明的注解, 忽略inherited

public Annotation[] getDeclaredAnnotations()

//获取指定类型的注解

public <A extends Annotation> A getAnnotation(Class<A> annotationClas)

//判断是否有指定类型的注解

public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass )

相关文章

网友评论

      本文标题:Annotation

      本文链接:https://www.haomeiwen.com/subject/blcedrtx.html