Java / Annotations
Explain repeating annotation in Java8.
Prior to Java 8, attaching more than one annotation of the same type to the same part of the code (for example, a class or a method) was not allowed. Therefore, the developers had to group them together into single container annotation as a workaround:
@Authors({ @Author(name = "John"), @Author(name = "George") }) public class Book { ... }
Java 8 introduces repeating annotations which allows to rewrite the same annotation without explicitly using the container annotation:
@Author(name = "John") @Author(name = "George") public class Book { ... }
The container annotation is still used but this time the Java compiler is responsible for wrapping the repeating annotations into a container annotation.
User-defined annotations are not repeatable by default and have to be annotated with @Repeatable annotation.
More Related questions...