Java注解(Annotation)的基本概念
来源:互联网 发布:爬虫获取股票数据 编辑:程序博客网 时间:2024/06/07 20:43
Annotation的作用
- 不是程序本身,可以对程序做出解释,就和注释类似;
- 可以被其他程序(例如:编译器)读取。(注解信息处理流程,是注解和注释的重大区别。如果没有注解信息的处理流程,则注解毫无意义)
Annotation的格式
- 注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如:
@SuppressWarnings(value="unchecked")
Annotation在哪里使用?
- 可以附加在package,class,method,field等上面,相当于给它们添加了额外的辅助信息,我们可以通过反射机制编程实现对这些元数据的访问。
内置注解
@Override
-定义在java.lang.Override
中,此注释只适用于修辞方法,表示一个方法声明打算重写超类中的另一个方法声明。@Deprecated
-定义在java.lang.Deprecated
中,此注释可用于修辞方法,类,属性,表示不鼓励程序员使用这样的元素,通常是因为它很危险或存在更好的选择。@SuppressWarnings
-定义在java.lang.SuppressWarnings
中,用来抑制编译时的警告信息。
元注解
- 元注解的作用就是负责注解其他注解。Java定义个4个标准的meta-annotation类型,它们被用来提供对其它annotation类型作说明
这些类型和他们所支持的类在java.lang.annotation包中可以找到
@Target
@Retention
@Documented
@Inherited
@Target – 表示该注解用于什么地方。如果不明确指出,该注解可以放在任何地方。以下是一些可用的参数。需要说明的是:属性的注解是兼容的,如果你想给7个属性都添加注解,仅仅排除一个属性,那么你需要在定义target包含所有的属性。
- ElementType.TYPE:用于描述类、接口或enum声明
- ElementType.FIELD:用于描述实例变量
- ElementType.METHOD
- ElementType.PARAMETER
- ElementType.CONSTRUCTOR
- ElementType.LOCAL_VARIABLE
- ElementType.ANNOTATION_TYPE 另一个注释
- ElementType.PACKAGE 用于记录java文件的package信息
@Retention– 定义该注解的生命周期。
RetentionPolicy.SOURCE – 在编译阶段丢弃。这些注解在编译结束之后就不再有任何意义,所以它们不会写入字节码。@Override, @SuppressWarnings都属于这类注解。
RetentionPolicy.CLASS – 在类加载的时候丢弃。在字节码文件的处理中有用。注解默认使用这种方式。
RetentionPolicy.RUNTIME– 始终不会丢弃,运行期也保留该注解,因此可以使用反射机制读取该注解的信息。我们自定义的注解通常使用这种方式。
@Documented–一个简单的Annotations标记注解,表示是否将注解信息添加在java文档中。
@Inherited – 定义该注释和子类的关系
自定义注解
自定义注解的简单讲解(使用注解的方式将javabean类转换为数据库表)
阅读全文
1 0
- Java注解(Annotation)的基本概念
- Java注解Annotation的基本概念
- Java注解(Annotation)基本概念
- [java Annotation] 注解基本概念
- 深入理解java:注解(annotation)的基本概念
- Java注解(1)(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- 深入理解Java:注解(Annotation)基本概念
- git
- HDU-5520-最小费用最大流
- 2017年6月16日
- C++项目中的extern "C" {}
- 机器学习: 激活函数的认识
- Java注解(Annotation)的基本概念
- java基于poi快速操作Excel的工具Excel4J v2.0.0
- kubernetes 1.6高可用集群在部署中遇到的问题
- CSDN日报20170616 ——《从裁缝到码农》
- 通过ajax请求api数据
- 高薪就业系列 面试题
- 蔡蒂民-2014下半年总结报告.doc
- 命名管道
- 蔡蒂民-2015年年中总结报告.docx