注解就是配置在类、方法或属性上的额外的信息,运行期注解可以在反射中被读取到。
public @interface 注解类名
我们还可以给注解配置元注解信息,元注解就是配置在注解上的注解。通过给我们定义的注解配置元注解,来定义注解的用途。比如@Target和@Retention就是两个常用的元注解。
@Target可以指定注解配置的地方,例如@Target(ElementType.TYPE)。
取值 | 说明 |
---|---|
ElementType.TYPE | 应用于类、接口(包括注解类型)、枚举 |
ElementType.FIELD | 应用于属性(包括枚举中的常量) |
ElementType.METHOD | 应用于方法 |
ElementType.PARAMETER | 应用于方法的形参 |
ElementType.CONSTRUCTOR | 应用于构造函数 |
ElementType.LOCAL_VARIABLE | 应用于局部变量 |
ElementType.ANNOTATION_TYPE | 应用于注解 |
@Retention可以指定注解的类型,例如@Retention(RetentionPolicy.RUNTIME)。
取值 | 说明 |
---|---|
RetentionPolicy.SOURCE | 编译时被丢弃,只标记源码,用于源码阅读 |
RetentionPolicy.CLASS | 编译期注解 |
RetentionPolicy.RUNTIME | 运行期注解 |
将注解声明在元素的左边
运行期注解的读取基于反射。调用该类字节码class对象的getAnnotation()方法就可以拿到该注解了。然后我们就可以调用注解上面的方法获取我们想要的配置信息了。注意注解默认有一个value属性,它是可以直接调用的。
阅读量:546
点赞量:0
收藏量:0