Найти в Дзене
DEBAGanov

Java 155. Как определить повторяемую аннотацию?

Для того чтобы создать повторяемую аннотацию в 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