JAVA注解技术详解 课件.ppt

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Annotation Exploration Java 5 新特性--注解 概览 Jet 2019.08.30 Annotation in JDK 5.0 --将元数 据( metadata )引入 Java a. 元数据是描述数据的数据 b. Javadoc 、 XDoclet 都是元数据工具 b. 元数据的用处 文档编制、编译器检查和代码分析 标准 Annotation 类型 a. Override 表示一个方法声明打算重写父类中的另一个方法声明 b. SuppressWarnings 指示应该在注解元素中取消显示指定的编译器警告 c. Deprecated 不鼓励程序员使用这样的元素,因为很危险或存在更 好的选择 标准 Annotation 类型 代码示例 Override public String totring(){ //some code } 编译时会提示错误,因为此方法并没有重写父类里的 toString() 方法。 Deprecated public String getString(){ //some code } 当其他类试图调用或重写此方法时,编译器会发出警告 SuppressWarnings(“unchecked”) public void add(){ List temp = new ArrayList(); temp.add(annotation test!!!); } 当其他类试图调用或重写此方法时,编译器会发出警告 自定义 Annotation 1. Public interface TestAnnotation{ 2. int id(); 3. String description() default “nothing”; 4. String[] reason(); 5. } 6. 使用时: 1. 在所有修饰符前声明; 2. 如果含有成员, 声明时必须初始化; 3. 允许使用默认值; 4. 只有单 个成员变量时,最好叫做 value() ,这样可以使用 简化的初始声明。 自定义 Annotation 1. 对注解的注解: 2. 1.Target ,从枚举类 ElementType 里取一个或多个 值,指明此注解可以应用的程序元素。 3. 2.Retention ,保持性,从枚举类 RetentionPolicy 里取唯一值指明编译器处理此注解的方式。 4. 3.Documented ,注解应出现在 javadoc 里; RetentionPolicy.RUNTIME 的注解才能使用。 5. 4.Inherited ,表示此注解的方法期望把父类的注解 也继承下来。慎用。 自定义 Annotation 1. Documented 2. Inherited ? Target(value={ElementType.FIELD,ElementType. METHOD}) ? Retention(RetentionPolicy.RUNTIME ) ? Public interface AdvancedAnnotation{ ? //some members declared here. ? } Annotation 与反射 1. JDK 5.0 反射 API 增加了读取 运行时 annotation 的能 力 2. isAnnotationPresent(Class annotationClass) 3. getAnnotation(Class annotationClass) 4. getAnnotations() 5. getDeclaredAnnotations() 省去由继承获得的 annotation 6. getParameterAnnotations() 没试过 Annotation 与反射 1. 利用反射机制我们可以对 annotation 进行灵活的处 理 2. 1. 获得不同的 Annotation 3. 2. 获得 Annotation 的成员变量 4. 见示例代码 apt : sun 提供的 annotation processing tools 1. 专门处理 annotation 的 javac ,据说 jdk 6.0 已经将其 加入 javac 2. 一般需要自己定义 annotation 处理接口 3. apt – factory ourProcessorFactory ${dir}

文档评论(0)

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

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

1亿VIP精品文档

相关文档