Мета-аннотация @Target определяет, в каком контексте может применяться объявляемая аннотация. Допустимые контексты перечисляются значениями ElementType. По умолчанию, если @Target не указан, разрешены все контексты кроме TYPE_PARAMETER. Возможные таргеты:
• TYPE – Объявление класса, интерфейса, аннотации или enum-а. • FIELD – Объявление поля (включая константы enum-ов). • METHOD – Объявление метода. • PARAMETER – Формальный параметр в объявлении метода. • CONSTRUCTOR – Объявление конструктора. • LOCAL_VARIABLE – Объявление локальной переменной. • ANNOTATION_TYPE – Объявление аннотации. Применяется для создания мета-аннотации. • PACKAGE – Объявление пакета (в package-info.java). –– С Java 8 –– • TYPE_PARAMETER – Обявление generic типа-параметра. • TYPE_USE – Любое использование типа. Например приведение: (@NonNull String) myObject. –– С Java 9 –– • MODULE – Объявление модуля.