Java - Repeatable Annotation Type

Introduction

To use an annotation repeatedly in the same context, the annotation type declaration must be annotated with a @Repeatable annotation.

Example

The following code creates EventLog and EventLogs annotation types.

EventLog is annotated with the @Repeatable(EventLogs.class) annotation, which means that it is a repeatable annotation type and its containing annotation type is EventLogs.

@Repeatable(EventLogs.class)
@interface EventLog {
        String date();
        String comments();
}

@interface EventLogs {
    EventLog[] value();
}

You can use the EventLog annotation to log change history for the Test class.

@EventLog(date="02/01/2018", comments="entry 1")
@EventLog(date="02/21/2018", comments="entry 2")
class Test {
}