Попытка выяснить, как ладить с поддержкой Java 8 Поддержка повторяющихся аннотаций.Java 8 Повторяемая аннотация
После: https://blog.idrsolutions.com/2015/03/java-8-repeating-annotation-explained-in-5-minutes/
это работает безупречно.
Но если я изменяю пример и добавляю только @Manufacturer в классе Car, я не могу прочитать эту единственную аннотацию. Поэтому, если есть только одно появление повторяющейся аннотации, ее невозможно прочитать.
Так наличие:
@Manufacturer("Range Rover")
public class Car {
}
Manufacturer[] a = Car.class.getAnnotationsByType(Manufacturer.class);
размер здесь будет 0
и
Cars cars = Car.class.getAnnotation(Cars.class);
for(Manufacturer car: cars.value())
System.out.println(car.value());
здесь будет NPE на автомобилях ..
Почему?
Чтобы получить доступ к аннотации через отражение, ее необходимо пометить как '@Retention (RUNTIME)'. Есть ли у вашей автоподписи аннотации? –
Да, конечно, это не проблема, это работает, если я аннотирую класс с несколькими аннотациями, но если есть только один, я не могу его получить. – darku