package cn.itcast.annotation0401; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 注解类 * @author Administrator * * 提供标注在类的哪些部位 * * 这个注解的作用范围是哪些 * * 在document里(帮助文档里)是否体现注解类 */ /** * @Target能标注在注解类型上 * ElementType * TYPE * 类和接口 * FIELD * 属性 * METHOD * 方法 * PARAMETER * 方法中的参数 * CONSTRUCTOR * 构造器 * ANNOTATION_TYPE * 注解类型 * PACKAGE * 包 * 指明了所在的注解类能标注在类的哪些部位 * @Target({ElementType.TYPE,ElementType.METHOD}) * 既可以标注在类上也可以标注在方法上 */ @Target(ElementType.TYPE) /** * 是否让@Description这个注解出现在帮助文档中 */ @Documented /** * @Retention * 说明@Description注解的作用域 * RetentionPolicy.SOURCE * @Description这个注解在源文件中起作用 * RetentionPolicy.CLASS * @Description这个注解即在源文件中起作用又在class文件中起作用 RetentionPolicy.RUNTIME @Description在源文件、class文件、运行的过程中都起作用 */ @Retention(RetentionPolicy.RUNTIME) public @interface Description { String value();//属性 }