- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java_Annotation详解
浪曦视频在线 浪 曦 视 频 在 线 Java Annotation详解 讲师:风中叶 版 权 归 浪 曦 视 频 在 线 所 有 第*页 概 述 掌握Java Annotation特性与使用方式 Annotation的由来 Annotation的定义方式 Annotation的使用方式 JDK5内建Annotation详解 Annotation高级特性 为什么使用Annotation 在JAVA应用中,我们常遇到一些需要使用模版代码的情况。例如,为了编写一个 web service,我们必须提供一对接口和实现作为模版代码。如果使用annotation对远程访问的方法代码进行修饰的话,这个模版就能够使用工具自动生成。 另外,一些API需要使用与程序代码同时维护的附属文件。例如EJB需要一个部署描述符。此时在程序中使用annotation来维护这些附属文件的信息将十分便利而且减少了错误。 Annotation工作方式 从Java5.0版发布以来,5.0平台提供了一个正式的annotation功能:允许开发者定义、使用自己的annotation类型。此功能由一个定义annotation类型的语法和一个描述annotation声明的语法,读取annotation的API,一个使用annotation修饰的class文件,一个annotation处理工具(apt)组成。 Annotation工作方式 annotation并不直接影响代码语义,但是它能够工作的方式被看作类似程序的工具或者类库,它会反过来对正在运行的程序语义有所影响。annotation可以从源文件、class文件或者以在运行时反射的多种方式被读取。 当然annotation在某种程度上使javadoc tag更加完整。一般情况下,如果这个标记对java文档产生影响或者用于生成java文档的话,它应该作为一个javadoc tag;否则将作为一个annotation。 第*页 使用JDK5内建Annotation 参见程序实例 Override Deprecated SuppressWarnings 第*页 限定Override父类方法@Override java.lang.Override是个Marker annotation 用于标示的Annotation,Annotation名称本身即表示了要给工具程序的信息 第*页 标示方法為Deprecated @Deprectated 对编译程序说明某个方法已经不建议使用,即该方法是过时的。 java.lang.Deprecated也是個Marker annotation Deprecated这个名称在告知编译程序,被@Deprecated标示的方法是一个不建议被使用的方法 第*页 抑制编译程序警告@SuppressWarnings 对编译程序说明某个方法中若有警告讯息,则加以抑制 第*页 自定义Annotation类型 定义Marker Annotation,也就是Annotation名称本身即提供信息 对于程序分析工具来说,主要是检查是否有MarkerAnnotation的出现,并作出对应的动作 参见程序范例 第*页 Single-value annotation value成员设定默认值,用default关键词 数组方式的使用 枚举在Annotation中的应用 第*页 自定义Annotation类型 使用@interface自行定义Annotation型态时,实际上是自动继承了java.lang.annotation.Annotation接口 由编译程序自动为您完成其它产生的细节 在定义Annotation型态时,不能继承其它的Annotation型态或是接口 第*页 自定义Annotation类型 定义Annotation型态时也可以使用包来管理类别 方式类同于类的导入功能 第*页 告知编译程序如何处理@Retention java.lang.annotation.Retention型态可以在您定义Annotation型态时,指示编译程序该如何对待您的自定义的Annotation型态 预设上编译程序会将Annotation信息留在.class档案中,但不被虚拟机读取,而仅用于编译程序或工具程序运行时提供信息 告知编译程序如何处理@Retention 在使用Retention型态时,需要提供java.lang.annotation.RetentionPolicy的枚举型态 package java.lang.annotation; public enum RetentionPolicy { SOURCE, //编译程序处理完Annotat
文档评论(0)