Sobes.tech
Назад к вопросам
Junior — Middle
66

Каким образом определить аннотацию, применимую исключительно к классам?

Ответ от нейросети

sobes.tech AI

Чтобы определить аннотацию (annotation) в Java, применимую только к классам, нужно использовать мета-аннотацию @Target с параметром ElementType.TYPE. Это ограничит область применения аннотации классами, интерфейсами, перечислениями и аннотациями.

Пример определения такой аннотации:

import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

@Target(ElementType.TYPE) // применимо только к классам, интерфейсам, enum и аннотациям
@Retention(RetentionPolicy.RUNTIME) // доступна во время выполнения
public @interface MyClassAnnotation {
    String value() default "";
}

Теперь @MyClassAnnotation можно ставить только над объявлением класса, интерфейса или enum, но не над методами или полями.