本文最后更新于 2024年4月15日 下午
Introduction
Java 8 引入了可重复注解 @Repeatable
的功能,允许相同的注解可以在同一个元素上多次使用。
In Practice
定义可重复注解及其容器注解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| import java.lang.annotation.*;
@Repeatable(Authors.class) @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @interface Author { String name(); }
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) @interface Authors { Author[] value(); }
|
在类上使用可重复注解
1 2 3 4 5
| @Author(name = "John") @Author(name = "Doe") public class Book { }
|
获取可重复注解的值
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import java.lang.annotation.Annotation;
public class Main { public static void main(String[] args) { Authors authors = Book.class.getAnnotation(Authors.class); Author[] authorArray = authors.value(); for (Author author : authorArray) { System.out.println("Author: " + author.name()); } } }
|