注解A
package cn.anno;
import java.lang.annotation.*;
/**
* 一些元注解和作用
* Target:说明了注解定义的位置,位置可以是类(Type),成员方法,成员属性,泛型上面,
* Retention:说明了注解存在的生命周期,3种 第一种 源文件 ;第二种源文件和.class字节码文件 ;第三种 源文件,.class字节码文件和运行时
* Inherited:说明了注解是可以继承的, 子类可以重复,但是只显示一份。
* Repeatable: 说明注解是可以多次定义的 当引入@Repeatable的时候必须需要指定它的value值。
* 1.需要注意注解类元注解应该一样
* 2.需要说明值
* Documented:生成javadoc文档时候就会把注解显示出来
*/
/**
* 注解类@interface
* 只有在底层的时候有用
* 正常运行时也不需要注解
*/
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Repeatable(MyAnnos.class)
@Documented
public @interface MyAnno {
//通过方法声明定义标签里面的键值对
//方法名是参数名,方法返回值是值类型
String name();
String note();
}
辅助注解B(为了实现注解A可以在一个地方多次使用构造的辅助注解类)
1 package cn.anno;
2
3 import java.lang.annotation.*;
4
5 /**
6 * 元注解必须和MyAnno一样
7 */
8 @Target({ElementType.TYPE})
9 @Retention(RetentionPolicy.RUNTIME)
10 @Inherited
11 @Documented
12 public @interface MyAnnos {
13 //声明value
14 MyAnno[] value();
15 }
原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/273213.html