Java+Annotation+介绍.ppt

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JavaAnnotation介绍

Java Annotation 介绍 一、为什么使用Annotation: 在JAVA应用中,我们常遇到一些需要使用模版代码。例如,为了编写一个JAX-RPC web service,我们必须提供一对接口和实现作为模版代码。如果使用annotation对远程访问的方法代码进行修饰的话,这个模版就能够使用工具自动生成。 另外,一些API需要使用与程序代码同时维护的附属文件。例如,JavaBeans需要一个BeanInfo Class与一个Bean同时使用/维护,而EJB则同样需要一个部署描述符。此时在程序中使用annotation来维护这些附属文件的信息将十分便利而且减少了错误。 二、Annotation工作方式: 从Java5.0版发布以来,5.0平台提供了一个正式的annotation功能:允许开发者定义、使用自己的annoatation类型。此功能由一个定义annotation类型的语法和一个描述annotation声明的语法,读取annotaion的API,一个使用annotation修饰的class文件,一个annotation处理工具(apt)组成。 annotation并不直接影响代码语义,但是它能够工作的方式被看作类似程序的工具或者类库,它会反过来对正在运行的程序语义有所影响。annotation可以从源文件、class文件或者以在运行时反射的多种方式被读取。 当然annotation在某种程度上使javadoc tag更加完整。一般情况下,如果这个标记对java文档产生影响或者用于生成java文档的话,它应该作为一个javadoc tag;否则将作为一个annotation。 三、Annotation使用方法: 1。类型声明方式: 2。修饰方法的annotation声明方式: 一个简单的annotation类型声明: ????/** ???? * Describes the Request-For-Enhancement(RFE) that led ???? * to the presence of the annotated API element. ???? */ ????public @interface RequestForEnhancement { ????????int????id(); ????????String synopsis(); ????????String engineer() default [unassigned]; ????????String date();????default [unimplemented]; ????} 2。修饰方法的annotation声明方式: annotation是一种修饰符,能够如其它修饰符(如public、static、final)一般使用。习惯用法是annotaions用在其它的修饰符前面。annotations由“@+annotation类型+带有括号的成员-值列表”组成。这些成员的值必须是编译时常量(即在运行时不变)。 一个使用了RequestForEnhancement annotation的方法声明: ??@RequestForEnhancement( ????????id?????? = 2868724, ????????synopsis = Enable time-travel, ????????engineer = Mr. Peabody, ????????date???? = 4/1/3007 ????) ????public static void travelThroughTime(Date destination) { ... } 当声明一个没有成员的annotation类型声明时,可使用以下方式: ??/** ???? * Indicates that the specification of the annotated API element ???? * is preliminary and subject to change. ???? */ ????public @interface Preliminary { } 作为上面没有成员的annotation类型声明的简写方式: ????@Preliminary public class TimeTravel { ... } 如果在annotations中只有唯一一个成员,则该成员应命名为value: ????/** ???? * Associates a copyright notice with the annotated API element. ???? */ ????public @interface Copyright

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档