Java注解基础概念总结
来源:互联网 发布:var(x|y) 算法 编辑:程序博客网 时间:2024/05/20 07:32
http://blog.csdn.net/github_35180164/article/details/52107204
http://blog.csdn.net/github_35180164/article/details/52107204
注解的概念
注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Metadata很容易的就能够调用Annotations。注解与类、接口、枚举在同一个层次,并可以应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中,用来对这些元素进行说明注释。
注解的语法与定义形式
(1)以@interface关键字定义
(2)注解包含成员,成员以无参数的方法的形式被声明。其方法名和返回值定义了该成员的名字和类型。
(3)成员赋值是通过@Annotation(name=value)的形式。
(4)注解需要标明注解的生命周期,注解的修饰目标等信息,这些信息是通过元注解实现。
以 Java.lang.annotation 中定义的 Target 注解来说明:
源码分析如下:第一:元注解@Retention,成员value的值为RetentionPolicy.RUNTIME。
第二:元注解@Target,成员value是个数组,用{}形式赋值,值为ElementType.ANNOTATION_TYPE
第三:成员名称为value,类型为ElementType[]
另外,需要注意一下,如果成员名称是value,在赋值过程中可以简写。如果成员类型为数组,但是只赋值一个元素,则也可以简写。如上面的简写形式为:
注解的分类
注解的分类有两种分法:
第一种分法
1、基本内置注解,是指Java自带的几个Annotation,如@Override、Deprecated、@SuppressWarnings等;
2、元注解(meta-annotation),是指负责注解其他注解的注解,JDK 1.5及以后版本定义了4个标准的元注解类型,如下:
- @Target
- @Retention
- @Documented
- @Inherited
3、自定义注解,根据需要可以自定义注解,自定义注解需要用到上面的meta-annotation
第二种分法
注解需要标明注解的生命周期,这些信息是通过元注解 @Retention 实现,注解的值是 enum 类型的 RetentionPolicy,包括以下几种情况:
元注解
如上所介绍的Java定义了4个标准的元注解:
@Documented:标记注解,用于描述其它类型的注解应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。
@Inherited:标记注解,允许子类继承父类的注解
@Retention:指Annotation被保留的时间长短,标明注解的生命周期,3种RetentionPolicy取值含义上面以说明
@Target:标明注解的修饰目标,共有
参考文章:
反射、注解与依赖注入总结
注解系列知识总结(一)
- Java注解基础概念总结
- Java注解基础概念总结
- java注解基础概念总结
- Java注解基础概念总结
- Java注解基础概念总结
- Java基础概念总结
- java基础概念总结
- Java面试基础概念总结
- 黑马程序员:Java基础总结----java注解
- java基础总结30-java注解(Annotation)
- java基础总结--注解(Annotation)基本概念
- Java基础加强总结--注解(Annotation)
- java基础学习之集合概念总结
- [转载]Java面试基础概念总结
- Java基础总结-基本语法概念-1
- Java基础总结-基本语法概念-2
- Java基础总结-基本语法概念-3
- java 基础总结--注解(Annotation)自定义注解入门
- git远程分支和本地分支
- LA 3516 Exploring Pyramids (递推)
- Spring事务处理探究
- 【Web】css强制换行和超出隐藏实现...
- 实现两个Mysql数据库之间同步的方案
- Java注解基础概念总结
- adapter 构造器中的 一个item中再增加 item的时用for循环增加viewde问题
- Android -饼状图简单使用
- java实现从头部及尾部删除指定长度字符
- OpenGL ES之glUniform函数-----非常清晰的解释了glUniform的函数使用, 很不错!!!
- 一个小例子理解事件委托
- Spring 反射注入+全注解注入
- 计算机编程英语词汇
- Java工具类之Apache的Commons Lang和BeanUtils