Каковы точные значения по умолчанию для двух мета-аннотаций (Target and Retention) в пользовательской аннотации?По умолчанию свойства Java Аннотация
public @interface AnnotationWithDefaultProps {
}
Каковы точные значения по умолчанию для двух мета-аннотаций (Target and Retention) в пользовательской аннотации?По умолчанию свойства Java Аннотация
public @interface AnnotationWithDefaultProps {
}
В соответствии с исходным кодом, ни один из них не имеет значения по умолчанию, что означает, что вы должны предоставить его всякий раз, когда вы используете аннотацию. Смысл недостающей аннотации определяется в Javadoc:
Для Target
это означает
Если цель мета-аннотации нет на объявлении типа аннотаций, объявленный тип может быть использован в любой программе элемент.
и Retention
это означает
Если нет Удержание аннотации не присутствует на объявлении типа аннотаций, сохранение политики по умолчанию для RetentionPolicy.CLASS.
Строго говоря, для аннотаций не указаны значения по умолчанию. Аннотаций просто нет.
Но для этих двух, в частности,
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/annotation/Retention.html говорит
Если нет Retention аннотаций не присутствует на объявлении типа аннотаций, сохранение политики по умолчанию для RetentionPolicy.CLASS.
и то же самое для мишени,
Если цель мета-аннотаций не присутствует в объявлении типа аннотаций, объявленный тип может быть использован на любом элементе программы.