快速业务通道

Java Annotation入门 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

Java Annotation入门

时间:2011-05-20 blogjava cleverpig

摘要:

本文针对java初学者或者annotation初次使用者全面地说明了annotation的使 用方法、定义方式、分类。初学者可以通过以上的说明制作简单的annotation程 序,但是对于一些高级的annotation应用(例如使用自定义annotation生成 javabean映射xml文件)还需要进一步的研究和探讨。涉及到深入annotation的内 容,作者将在后文《Java Annotation高级应用》中谈到。

同时,annotation运行存在两种方式:运行时、编译时。上文中讨论的都是在 运行时的annotation应用,但在编译时的annotation应用还没有涉及,

一、为什么使用Annotation:

在JAVA应用中,我们常遇到一些需要使用模版代码。例如,为了编写一个JAX -RPC web service,我们必须提供一对接口和实现作为模版代码。如果使用 annotation对远程访问的方法代码进行修饰的话,这个模版就能够使用工具自动 生成。

另 外,一些API需要使用与程序代码同时维护的附属文件。例如,JavaBeans 需要一个BeanInfo Class与一个Bean同时使用/维护,而EJB则同样需要一个部署 描述符。此时在程序中使用annotation来维护这些附属文件的信息将十分便利而 且减少了错误。

二、Annotation工作方式:

在5.0 版之前的Java平台已经具有了一些ad hoc annotation机制。比如,使 用transient修饰符来标识一个成员变量在序列化子系统中应被忽略。而 @deprecated这个 javadoc tag也是一个ad hoc 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。类型声明方式:

通常,应用程序并不是必须定义annotation类型,但是定义annotation类型并 非难事。Annotation类型声明于一般的接口声明极为类似,区别只在于它在 interface关键字前面使用“@”符号。

annotation 类型的每个方法声明定义了一个annotation类型成员,但方法声 明不必有参数或者异常声明;方法返回值的类型被限制在以下的范围: primitives、String、Class、enums、annotation和前面类型的数组;方法可以 有默认值。

下面是一个简单的annotation类型声明:

清单1:

/**    * 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]";    }

代码中只定义了一个annotation类型RequestForEnhancement。

Java Annotation入门(2)

时间:2011-05-20 blogjava cleverpig

2。修饰方法的annotation声明方式:

annotation 是一种修饰符,能够如其它修饰符(如public、static、final) 一般使用。习惯用法是annotaions用在其它的修饰符前面。 annotations

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号