Java 多重注解


多重注解

  • 在注解前使用 @Repeatable 允许同一类型的注解多次使用;
  • 是 JDK 1.8 新增的功能之一;

1. 定义注解

  • 放置一组具体的 NewAnno 注解,在 NewAnno 注解前使用 @Repeatable,允许同一类型的注解可以多次使用;
import java.lang.annotation.Repeatable;

@interface NewAnnos {
    NewAnno[] value(); //定义放置NewAnno注解的数组
}

@Repeatable(NewAnnos.class)
        //使用@Repeatable说明这个注解可以多次使用
@interface NewAnno { //定义NewAnno注解
    String value(); //定义注解的属性
}

2. 使用多重注解

a. 方式 1

  • 使用包装类作为容器保存多个注解;
import java.lang.annotation.Repeatable;

@interface NewAnnos {
    NewAnno[] value(); //定义放置NewAnno注解的数组
}

@Repeatable(NewAnnos.class)
        //使用@Repeatable说明这个注解可以多次使用
@interface NewAnno { //定义NewAnno注解
    String value(); //定义注解的属性
}
@NewAnnos({@NewAnno("NewAnno"), @NewAnno("NewAnno")})
class Test {
}

b. 方式 2

  • Java编译器会隐式地定义 @NewAnnos 注解,所以可以直接使用多重注解;
import java.lang.annotation.Repeatable;

@interface NewAnnos {
    NewAnno[] value(); //定义放置NewAnno注解的数组
}

@Repeatable(NewAnnos.class)
        //使用@Repeatable说明这个注解可以多次使用
@interface NewAnno { //定义NewAnno注解
    String value(); //定义注解的属性
}
@NewAnno("NewAnno")
@NewAnno("NewAnno")
class Test2 {
}
发布了185 篇原创文章 · 获赞 181 · 访问量 5370

猜你喜欢

转载自blog.csdn.net/Regino/article/details/104660476