1. Что такое повторяющаяся аннотация?
Позволяет несколько раз использовать одну и ту же аннотацию для одного и того же объявленного типа (класса, свойства или метода).
2. Простой пример
До Java 8 также существовали решения для повторного использования аннотаций, но читаемость была не очень хорошей, например следующий код:
Скопируйте код кода следующим образом:
общественный @interface Authority {
Строковая роль();
}
общественные @interface Authorities {
Значение авторитета[]();
}
общественный класс RepeatAnnotationUseOldVersion {
@Authorities({@Authority(role="Администратор"),@Authority(role="Менеджер")})
общественная недействительность doSomeThing () {
}
}
Используйте другую аннотацию для хранения повторяющихся аннотаций. При ее использовании используйте полномочия аннотации хранилища для расширения повторяющихся аннотаций. Давайте посмотрим на подход в Java 8:
Скопируйте код кода следующим образом:
@Repeatable(Authorities.class)
общественный @interface Authority {
Строковая роль();
}
общественные @interface Authorities {
Значение авторитета[]();
}
общественный класс RepeatAnnotationUseNewVersion {
@Authority(роль="Администратор")
@Authority(role="Менеджер")
общественная недействительность doSomeThing(){ }
}
Разница в том, что при создании повторяющегося центра аннотаций добавьте @Repeatable, чтобы указать на сохраненные центры аннотаций. При его использовании аннотацию органа можно использовать повторно. Из приведенного выше примера мы видим, что подход в Java 8 больше подходит для традиционного мышления и более удобочитаем.
3. Резюме
В JEP120 не так много контента, это небольшая функция, предназначенная только для улучшения читаемости кода. На этот раз в Java 8 были внесены два улучшения в аннотации (JEP 104, JEP120, я полагаю, что аннотации будут использоваться чаще, чем раньше).