Ответ 1
Если вы не указали значение по умолчанию, оно является обязательным. Для вашего примера с использованием аннотации без использования атрибута MyValue
генерируется ошибка компилятора:
аннотация MyAnnotation отсутствует MyValue
Java позволяет определять значения в аннотациях, например:
public @interface MyAnnotation {
int MyValue();
}
Хотя можно установить значение по умолчанию для аннотации MyValue
, мне было интересно, можно ли сделать это обязательным. То, что я имею в виду, это заставить пользователя предоставить значение для MyValue
при аннотации класса или поля.
Я просмотрел документацию, но ничего не нашел. Кто-нибудь имеет решение этой проблемы или просто невозможно сделать обязательным аннотацию?
Если вы не указали значение по умолчанию, оно является обязательным. Для вашего примера с использованием аннотации без использования атрибута MyValue
генерируется ошибка компилятора:
аннотация MyAnnotation отсутствует MyValue
Учитывая
public @interface MyAnnotation {
int MyValue();
}
класс
@MyAnnotation
public class MyClass {
}
будет ошибкой компиляции без значения.
Я не пробовал это, но если вы хотите заставить значения к определенному значению, возможно, сделать тип перечислением.
public @interface MyAnnotation {
Status status();
}
Где Состояние - это перечисление.