Java注解annotation的用途说明
本日在看早年写的代码,发明本身对注解的相识还不长短常透彻,常常选择性就忽视了对注解实现的探讨,遂查询资料进修了一下。 注解是什么 实现名目 从代码来看我们知道注解的实现名目是: public @interface MyAnnotation{ 属性列表; } 以是我们有了第一向觉,注解也许是一个接口。通过查询资料得知(可以通过反编译软件),现实上 @interface 是自界说接口对 annotation 接口的担任,@interface 现实是一个语法糖。 import java.lang.annotation.Annotation; public interface MyAnnotation extends Annotation{ 属性列表; } 行使位置 类、要领、成员变量、形参位置。 分类 差异角度,我们对注解能有差异的分类,但知道了注解的实现道理后就会大白,现实上用法和实现要领都是一回事。 来历 1. JDK注解:一样平常都是在编译时起用作的注解,好比我们最为认识的 @Override。 2. 第三方框架注解 3. 自界说注解 运行机制(保存计策) @Retention({保存计策}) public @interface MyAnnotation{ 属性列表; } 1.源码(SOURCE)注解:注解只在源码中存在,编译成.class文件就不存在了,也就是说只能起到 “看” 的浸染。 2.编译(CLASS)注解:注解在源码和.class文件中都存在(JDK自带注解都属于编译时注解),一样平常用来作语法校验。 3.运行(RUNTIME)注解:在运行阶段还起浸染,乃至会影响运行逻辑的注解(@Autowired属于运行时注解),第三方框架和自定注解一样平常回收 runtime 的保存计策,能实现依靠注入、切面编程等成果。 元注解 现着实上面,我们已经看到一个元注解了(@Retention)。元注解就是加在注解上描写注解的注解。 一共有5个。 1. @Documented 在天生javadoc的时辰就会把@Documented注解给表现出来。 2. @Target(要害) 限制浸染位置,Method、Class等等。 9. @Inherited 被 @Inherited 注解的注解修饰了一个父类,假如他的子类没有被其他注解修饰,则它的子类也担任了父类的注解。 10. @Retention(要害) 上文的保存计策注解,影响注解浸染。 6. @Repeatable (不重要) @Repeatable 注解是用于声明其余范例注解的元注解,来暗示这个声明的注解是可一再的。@Repeatable的值是另一个注解,其可以通过这个另一个注解的值来包括这个可一再的注解。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |