没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
15页
本文档主要讲述的是Java-Annotation使用大全;Annotation 提供了一条与程序元素关联任何信息或者任何元数据(metadata)的途径。从某些方面看,annotation就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。
资源推荐
资源详情
资源评论
Java Annotation 使用大全
一、 究竟是什么?
提供了一条与程序元素关联任何信息或者任何元数据()的途径。从某些方面看,
就像修饰符一样被使用,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明
中。
这些信息被存储在 的“结构对中。 类型是一种接口,能够通过 反
射 的方式提供对其信息的访问。
能被用来为某个程序元素(类、方法、成员变量等)关联任何的信息。需要注意的是,这里存
在着一个基本的潜规则: 不能影响程序代码的执行,无论增加、删除 ,代码都始终如
一的执行。另外,尽管一些 通过 的反射 方法在运行时被访问,而 语言解释器在工作
时忽略了这些 。正是由于 虚拟机忽略了 ,导致了 类型在代码中是“不
起作用”的;只有通过某种配套的工具才会对 类型中的信息进行访问和处理。本文中将涵盖标准的
和 类型,陪伴这些 类型的工具是 编译器(当然要以某种特
殊的方式处理它们)。
由于上述原因, 在使用时十分简便。一个本地变量可以被一个以 命名的
类型所标注,来作为对这个本地变量不能被赋予 值的断言。而我们可以编写与之配套的一个
代码分析工具,使用它来对具有前面变量的代码进行解析,并且尝试验证这个断言。当然这些代码并不必自己
编写。在 安装后,在 目录中可以找到名为“的工具,它提供了处理 的框架:它启
动后扫描源代码中的 ,并调用我们定义好的 处理器完成我们所要完成的工作(比如验
证前面例子中的断言)。说到这里, 的强大功能似乎可以替代 这类的工具了,随着我们
的深入,大家会更加坚信这一点。
注:详细描述请参看 !" 规范:
#$%%%&&'() !"
二、 的定义:
这段文字开始介绍 相关技术。在此大家将看到 !&" 的标准 类型,这种标准类
型就是前文中所说的“内建”类型,它们可以直接被 支持。
可喜的是,在 *&" 版中的 已经加入了对自定义 的支持。
+。 的概念和语法:
首先,关键的概念是理解 是与一个程序元素相关联信息或者元数据的标注。它从不影响 程
序的执行,但是对例如编译器警告或者像文档生成器等辅助工具产生影响。
下面是常用的 列表,我们应该注意在 和 类型之间的不同:
&:
使用了在 !&" 所带来的新语法,它的行为十分类似 、, 这样的修饰符。每个
具有一个名字和成员个数 -"。每个 的成员具有被称为 对的名字和值
(就像 一样), 装载了 的信息。
.& 类型:
类型定义了 的名字、类型、成员默认值。一个 类型可以说是一个特殊的
接口,它的成员变量是受限制的,而声明 类型时需要使用新语法。当我们通过 反射
访问 时,返回值将是一个实现了该 类型接口的对象,通过访问这个对象我们能方便的
访问到其 成员。后面的章节将提到在 !&" 的 &' 包里包含的 / 个标准 类型。
0& 成员:
的成员在 类型中以无参数的方法的形式被声明。其方法名和返回值定义了该成员的名
字和类型。在此有一个特定的默认语法:允许声明任何 成员的默认值:一个 可以将
对作为没有定义默认值的 成员的值,当然也可以使用 对来覆盖其它
成员默认值。这一点有些近似类的继承特性,父类的构造函数可以作为子类的默认构造函数,但是也可以被子
类覆盖。
&1 类型:
一个没有成员定义的 类型被称为 1。这种 类型仅使用自身的存在
与否来为我们提供信息。如后面要说的 2。
3&:
也称为元 ,它是被用来声明 类型的 。!&" 提供了
一些标准的元 类型。下面介绍的 '、 就是 。
4&':
的 ' 是一个被标注的程序元素。' 说明了 所修饰的对象范围:
可被用于 1'、 ((类、接口、枚举、 类型)、类型成员(方法、构造方法、成员变量、
枚举值)、方法参数和本地变量(如循环变量、#参数)。在 类型的声明中使用了 ' 可
更加明晰其修饰的目标。
5&:
的 定义了该 被保留的时间长短:某些 仅出现在源代码中,而
被编译器丢弃;而另一些却被编译在 文件中;编译在 文件中的 可能会被虚拟机忽略,
而另一些在 被装载时将被读取(请注意并不影响 的执行,因为 与 在使用上是被
分离的)。使用这个 可以对 的“生命周期” 限制。
6&:
由于 被广泛使用于各种计算机开发过程中,所以当我们在这里谈论的 即元数据通常指被
装载的信息或者 本身。
。使用标准 :
!&" 在 &' 包中定义了 / 种标准的 类型:
&2:
&'&2是一个 1 类型,它被用作标注方法。它说明了被标注的方法重载了父
类的方法,起到了断言的作用。如果我们使用了这种 在一个没有覆盖父类方法的方法时, 编
剩余14页未读,继续阅读
资源评论
悠闲饭团
- 粉丝: 155
- 资源: 3306
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 课设毕设基于SSM的农产品供销服务系统-LW+PPT+源码可运行.zip
- 课设毕设基于SSM的高校四六级报名管理系统-LW+PPT+源码可运行.zip
- 课设毕设基于SSM的高校二手交易平台-LW+PPT+源码可运行.zip
- 课设毕设基于SSM的毕业生就业信息管理系统-LW+PPT+源码可运行
- ZodGame.DLL
- 编译原理是什么以及学习了解编译原理的意义
- 0dc10bd6f58239f070aa65979b792057.cpp
- 什么是协同过滤算法以及学习了解协同过滤算法的意义是什么
- 什么是汉诺塔python以及学习汉诺塔python的意义
- 1plusx_1_proj_test_231125_答案.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功