自定义Annotion(注解)

当时练习的时候直接写在了源代码中了,凑合看吧......

  /**
  * 四个元注解
  *   @Target 用于描述注解的使用范围,当多个值同时存在的时候也就意味着,使用的范围更多
  *      value= ElementType.TYPE 意味着这个注解只能定义在类,接口,枚举上
  *         ElementType.PACKAGE 意味着这个注解只能用于修饰包
  *         ElementType.CONSTRUCTOR 意味着这个注解用于描述构造器(构造犯法)
  *         ElementType.FIELD 意味着这个注解用于描述域
  *         ElementType.METHOD 意味着这个注解只能定义在方法上
  *         ElementType.LOCAL_VARLIABLE 意味着这个注解用于描述局部变量
  *         ElementType.PARAMETER 意味着这个注解用于描述参数
  *   @Retention 表示需要在什么级别保存该注释信息,用于描述注解的生命周期(保留策略)
  *     value = RetentionPolicy.RUNTIME 在运行时有效(即运行时保留),Runtime可以被反射机制读取
  *            RetentionPolicy.SOURCE 在源文件中有效(即源文件保留)
  *         RetentionPolicy.CLASS 在字节码文件中有效(即class文件,即在class中保留)
  *   @Documented
  *   @Inherited
  *
  *注解本身并没有什么用,只有在解析时才有用
  */
  @Target(value={ElementType.METHOD,ElementType.PACKAGE,ElementType.TYPE,ElementType.CONSTRUCTOR})
  public @interface MyAnnotion001 {
  /**
  * 注解的参数,代表这里需要一个String,默认值是"",如果不定义值的话会报错,需要default来给定一个默认值,一般当注解中只有一个参数名称为value;
  * @return
  */
  //String name1 = "test"; //这种方式也是有用的
  String value () default "";

  //String[] name() default{};
  }

猜你喜欢

转载自www.cnblogs.com/hgfbk/p/10900333.html