Java注解(Annotation)详解(三)——解析注解
来源:互联网 发布:表白楼宇生成器软件 编辑:程序博客网 时间:2024/06/14 05:57
转载:点击打开链接
(三)解析注解
1. 注解处理器
何为解析注解?即通过反射获取类、函数或成员上的运行时注解信息,从而实现动态控制程序运行的逻辑。
解析注解主要用到两个类库:
1.1. java.lang.annotation.Annotation
Java使用Annotation接口来代表程序元素前面的注解,该接口是所有Annotation类型的父接口。
1.2. java.lang.reflect.AnnotatedElement
AnnotatedElement 接口代表程序中可以接受注解的程序元素,是所有程序元素(Class、Method、Field、Package和Constructor)的父接口。获取该接口对象之后,即可以调用对象方法来访问Annotation信息,常用有如下几个:
1. getAnnotations():返回该程序元素上存在的所有注解。
2. isAnnotationPresent(annotation.class):判断该程序元素上是否包含指定类型的注解
3. getDeclaredAnnotations():返回直接存在于此元素上的所有注释。与此接口中的其他方法不同,该方法将忽略继承的注释。
2. 解析注解的代码例子
定义一个注解如下:
定义一个使用了注解的Test类:
再编写一个解析类:
运行解析类,结果如下,有三部分,第一部分是类上的注解,第二、三部分是不同的方法解析方法上的注解:
3.测试元注解@Retention
如果把@Retention改为SOURCE或者CLASS,再次运行ParseAnno类:
运行结果如下,什么也没有,这进一步说明了,只有设置为RUNTIME,才可以在运行时通过反射机制来获取注解信息,从而实现动态控制程序运行的逻辑。
4. 测试元注解@Inherited
创建一个接口和一个父类,并改写Test1类:
再一次运行ParseAnno解析类,输出结果如下,说明只能继承父类的注解,并且是类上的注解:
5. 知识导图
最后给出一张Java注解的知识导图,觉得总结得不错,这里就直接拿来了,导图来源:http://www.cnblogs.com/peida/archive/2013/04/26/3038503.html
阅读全文
0 0
- Java注解(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详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- Java注解Annotation详解
- 【C语言】实现彩色的进度条
- 深度优先搜索的基础
- hdu 3911, 3397 线段树 lazy tag
- Windows Internals – 0 开篇
- FPGA学习笔记:面向验证和仿真的行为描述语句(3)
- Java注解(Annotation)详解(三)——解析注解
- 批量微信筛选开通助手
- 【python】升级python后yum不能使用解决方法
- 并发(1)基本的线程机制
- 2. Add Two Numbers
- 百度地图与谷歌地球的偏差调整
- Windows Internals – 1.1 概念与工具之Windows版本
- c语言-简易通讯录
- Centos 6.9 Install gcc 7.1.0