注解与应用.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
注解与应用

注解及应用陈海峰Annotation究竟是什么?发音:annotation [?n?utei??n]n. 注解, 评注是java5.0中的新特征描述数据的数据(元数据)Annotation,中文名称注解、注释,对类或方法或字段进行注释用的Annotation提供了一条及程序元素关联任何信息或者任何元数据(metadata)的途径。但并不影响程序的运行。但是对例如编译器警告或者像文档生成器等辅助工具产生影响。Annotation涉及的概念?annotation:是java5.0中新增的语法,它的行为十分类似public、final这样的修饰符annotation类型 :annotation类型定义了annotation的名字、类型、成员默认值。一个annotation类型是一个特殊的java接口,annotation成员(是一个特殊的方法): annotation的成员在annotation类型中以无参数的方法的形式被声明。 可以有默认值(使用default关键字)marker annotation类型:没有任何成员。为什么用Annotation编译时检查错误运行改变方法的行为Xdoclet:自动更新配置文件。如将servlet动态的注册到web.xml中Ejb3 annotation:生成源代码,由接口和实现类自动生成本地接口及远程接口Java5.0中的标准Annotation Override:java.lang.Override是一个marker annotation类型,它被用作标注方法。 作用:说明了被标注的方法重载了父类的方法 使用场合:这个annotaton常常在我们试图覆盖父类方法而确又写错了方法名时发挥威力。Deprecated: 是一个marker annotation 作用: 用于标记已过期或不赞成使用的元素(如方法)SuppressWarnings:@SuppressWarnings被用于有选择的关闭编译器对类、方法、成员变量、变量初始化的警告。 package onlyfun.caterpillar;public @interface Debug {String value();} 实际上您定义了value()方法,编译器在编译时会自动帮您产生一个value的变数成员,接着在使用Debug Annotation时要指定值,例如:SomeObject.java package onlyfun.caterpillar;import java.util.*;public class SomeObject {@Debug(unit test)public void doSomething() {// ....}} @Debug(unit test)实际上是@Debug(value=unit test)的简便写法 如果是数组值,例如:Debug.java package onlyfun.caterpillar;public @interface Debug {String[] value();} 则使用Annotation时,可以写成@Debug({value1, value2}),或是@Debug(value={value1, value2})。您也可以对成员设定预设值,使用default关键字即可,例如:Debug.java package onlyfun.caterpillar;public @interface Debug {String value() default none;} 这么一来如果您使用@Debug时没有指定值,则预设就是none。您也可以为Annotation定义额外的成员,以提供额外的资讯给分析工具,例如:public @interface Debug {public enum Level {NONE, UNIT, INTEGRATION, FUNCTION};Level level() default Level.NONE;String name();String tester();} 则您可以如下使用这个Annotation:SomeObject.java package onlyfun.caterpillar;import java.util.*;public class SomeObject {@Debug(level = Debug.Level.UNIT,name = some test,tester = justin)public void doSomething() {// ....}} @interface实际上是自动继承自java.lang.annotation.Annotation,所以定义Annotation时不能继承其它 Annotation或是interf

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档