
#вопросы_с_собеседований
Что такое повторяющиеся аннотации?
Это аннотации, которые можно применять более одного раза к одному и тому же объявлению элемента. По соображениям совместимости, поскольку эта фича была представлена в Java 8, повторяющиеся аннотации хранятся в контейнере, который автоматически создается компилятором Java. Для всего этого необходимо объявлять их в два этапа. Во-первых, нужно объявить повторяемую аннотацию:
Что такое повторяющиеся аннотации?
Это аннотации, которые можно применять более одного раза к одному и тому же объявлению элемента. По соображениям совместимости, поскольку эта фича была представлена в Java 8, повторяющиеся аннотации хранятся в контейнере, который автоматически создается компилятором Java. Для всего этого необходимо объявлять их в два этапа. Во-первых, нужно объявить повторяемую аннотацию:
@Repeatable(Schedules.class)
public @interface Schedule {
String time() default "morning";
}
Затем определить содержащую аннотацию с обязательным элементом value
, тип которого должен быть массивом повторяемого типа аннотации:public @interface Schedules {
Schedule[] value();
}
Теперь мы можем использовать @Schedule
несколько раз:@Schedule
@Schedule(time = "afternoon")
@Schedule(time = "night")
void scheduledMethod() {
// ...
}