java注解与反射_第1页
java注解与反射_第2页
java注解与反射_第3页
java注解与反射_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java的注解与反射最近在学jdk1.5的新特性,看到注解部分难以理解,不明白到底有什么用处,但与反射接合起来看,就不难看出它的作用之一:代码分析,即使用反射提取java成分的注解,生成日志,便于查看以分析自己编写的代码。我们先来看看注解的分类:元注解、自定义注解。其中,元注解就是“用于注解的注解”,Target、Retention、Documented、Inherited,这些注解被包含在java.lang.annotation包中,下面我们简要说明这四种注解的作用,其中的具体参数就靠各位自己去百度了。Target用于说明注解所修饰的对象范围,注解可以被用来修饰包、类、接口、成员方法、构造器

2、、成员字段、方法参数、枚举值、Annotation类型;Retention用于定义该自定义注解被保留的时间长短;Documented用于描述其它类型的annotation应该被作为被标注的程序成员的公共API,因此可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员;Inherited 元注解是一个标记注解,如果一个使用了Inherited修饰的annotation类型被用于一个class,则这个annotation将被用于该class的子类(注意:Inherited annotation类型是被标注过的class的子类所继承。类并不从它所实现的接口继承ann

3、otation,方法并不从它所重载的方法继承annotation。当Inherited annotation类型标注的annotation的Retention是RetentionPolicy.RUNTIME,则反射API增强了这种继承性。如果我们使用java.lang.reflect去查询一个Inherited annotation类型的annotation时,反射代码检查将展开工作:检查class和其父类,直到发现指定的annotation类型被发现,或者到达类继承结构的顶层);Override用于标明方法是被重载的,若所标注的方法没有被重载则编译器报错;SuppressWarnings用于消除编译器的警告;Deprecated用于已经过期不用的类。那么什么是“自定义注解”?先举个例子,看下面代码:当然,这段代码没有任何实际作用,内部没有变量,那么我需要先向其中添加变量,如下所示:定义了注解,我们就需要在自己定义的java成分中使用这些注解。例如我将这个注解用在如下类中:这样就完了?不!还有一步,如果没有注解处理器,那么这些自定义注解可以说是没有任何用处的。注解处理器实际上就是利用了反射机制,获取java成分中的注解信息,由此我们可以分析代码的运行过程。 以上是注解处理器的简单实例,在实际

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论