Для того чтобы создать повторяемую аннотацию в Java, необходимо использовать аннотацию @Repeatable, которая в качестве параметра принимает класс-контейнер, содержащий одну или несколько аннотаций необходимого типа.
Пример объявления повторяемой аннотации:
@Repeatable(MyAnnotations.class)
public @interface MyAnnotation {
String value();
}
где MyAnnotations - это класс-контейнер, содержащий одну или несколько аннотаций @MyAnnotation.
Пример использования повторяемой аннотации:
@MyAnnotation("value1")
@MyAnnotation("value2")
public class MyClass {
// Код класса }
где аннотации @MyAnnotation("value1") и @MyAnnotation("value2") могут быть сгруппированы в одну аннотацию-контейнер @MyAnnotations.
Для получения всех аннотаций-контейнеров необходимо использовать метод getAnnotationsByType(Class annotationClass) класса Class. Например:
MyAnnotation[] annotations = MyClass.class.getAnnotationsByType(MyAnnotation.class);
Кроме того, в Java 8 был добавлен интерфейс java.lang.annotation.Repeatable, который позволяет объявлять повторяемые аннотации без явного использования класса-контейнера. Пример использования данного интерфейса аналогичен примеру выше.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov