Поле FIELD класса ElementType
Поле FIELD класса ElementType представляет собой константу перечисления, которая используется в аннотации Target. Когда вы указываете FIELD в качестве цели аннотации, это означает, что данная аннотация может быть применена исключительно к полям класса (переменным-членам класса). Это включает в себя как статические, так и нестатические поля. Использование этого поля позволяет компилятору проверять, что аннотация не будет ошибочно применена к методам, конструкторам или другим элементам программы.
Синтаксис
ElementType.FIELD
Пример
Давайте создадим собственную аннотацию FieldInfo, которая будет применяться только к полям, и используем её в классе:
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@interface FieldInfo
{
String description();
}
public class Main
{
@FieldInfo(description = "User's name")
private String name;
@FieldInfo(description = "User's age")
private int age;
public static void main(String[] args)
{
System.out.println("Annotation applied to fields successfully");
}
}
Результат выполнения кода:
"Annotation applied to fields successfully"
Пример
Давайте проверим, что аннотация с FIELD не может быть применена к методу. Этот код вызовет ошибку компиляции:
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target(ElementType.FIELD)
@interface OnlyForFields
{
}
public class Main
{
@OnlyForFields
public void someMethod()
{
System.out.println("This will not compile");
}
public static void main(String[] args)
{
}
}
Компилятор выдаст ошибку, так как аннотация OnlyForFields предназначена только для полей, а не для методов.
Смотрите также
-
класс
ElementType,
который содержит все возможные цели для аннотаций -
аннотацию
Target,
которая указывает, к чему может быть применена аннотация -
поле
METHOD,
которое указывает на применение к методам -
поле
PARAMETER,
которое указывает на применение к параметрам методов