WEB开发网
开发学院软件开发Java Tiger 中的注释,第 2 部分: 定制注释 阅读

Tiger 中的注释,第 2 部分: 定制注释

 2009-11-11 00:00:00 来源:WEB开发网   
核心提示: 清单 9 中的枚举值意义很明确,您自己可以分析其应用的目标(通过后面的注解),Tiger 中的注释,第 2 部分: 定制注释(6),使用 Target 元注释时,至少要提供这些枚举值中的一个并指出注释的注释可以应用的程序元素,按照规定使用注释,但是并不将它保留到编译后的类文件中,清单 10 说明

清单 9 中的枚举值意义很明确,您自己可以分析其应用的目标(通过后面的注解)。使用 Target 元注释时,至少要提供这些枚举值中的一个并指出注释的注释可以应用的程序元素。清单 10 说明了 Target 的用法:

清单 10. 使用 Target 元注释
package com.oreilly.tiger.ch06; 
import java.lang.annotation.ElementType; 
import java.lang.annotation.Target; 
/** 
 * Annotation type to indicate a task still needs to be completed 
 */ 
@Target({ElementType.TYPE, 
     ElementType.METHOD, 
     ElementType.CONSTRUCTOR, 
     ElementType.ANNOTATION_TYPE}) 
public @interface TODO { 
 String value(); 
} 

现在,Java 编译器将把 TODO 应用于类型、方法、构造函数和其他注释类型。这样有助于避免他人误用您的注释类型(或者最好的地方是, 您自己也不会因为疲惫而误用它)。

设置保持性


下一个要用到的元注释是 Retention 。这个元注释和 Java 编译器处理注释的注释类型的方式有关。编译器有几种不同选择:

将注释保留在编译后的类文件中,并在第一次加载类时读取它。

将注释保留在编译后的类文件中,但是在运行时忽略它。

按照规定使用注释,但是并不将它保留到编译后的类文件中。

这三种选项用 java.lang.annotation.RetentionPolicy 枚举表示,如清单 11 所示:

清单 11. RetentionPolicy 枚举
package java.lang.annotation; 
public enum RetentionPolicy { 
 SOURCE, // Annotation is discarded by the compiler 
 CLASS, // Annotation is stored in the class file, but ignored by the VM 
 RUNTIME // Annotation is stored in the class file and read by the VM 
} 

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Tiger 注释 部分

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接