@Retention (保留期)
RetentionPolicy.SOURCE 源码时保留
RetentionPolicy.CLASS 编码时保留,不会进入JVM
RetentionPolicy.RUNTIME 一直保留到JVM
@Documeted(文档注解)
能够将注解中的元素包含到Javadoc中
@Target(目标)
ElementType.ANNOTATION_TYPE (作用在注解上的注解)
ElementType.CONSTRUCTOR (作用在构造函数上的注解)
ElementType.FIELD (作用在属性上的注解)
ElementType.LOCAL_VARIABLE (作用在局部变量上的注解)
ElementType.METHOD (作用在方法上的注解)
ElementType.PACKAGE (作用在包上的注解)
ElementType.PARAMETER (作用在方法内参数上的注解)
ElementType.TYPE (作用在类上的注解 (类,接口,枚举))
@Inherited (继承)
被该注解注解过的类,其子类可以继承该父类的注解(前提:子类没有被任何注解应用)
@Repeatable (可重复)
jdk1.8特性
@Persons(Person[] persons) @Person(被 @Repeatable 注解)
则@ Person可以在一个方法上使用多次
@Deprecated(过期的元素或类)
判断通过反射判断它是否应用了某个注解:boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);
获取某个注解:<A extends Annotation> A getAnnotation(Class<A> annotationClass);
获得应用在他身上的某些注解:Annotation[] getAnnotations();
如果一个注解要在运行时被成功提取,那么 @Retention(RetentionPolicy.RUNTIME) 是必须的。
来源自:https://blog.csdn.net/briblue/article/details/73824058
最后,希望本文对你有帮助,领个红包吧!