2011-02-15 5 views

ответ

6

В соответствии с исходным кодом, ни один из них не имеет значения по умолчанию, что означает, что вы должны предоставить его всякий раз, когда вы используете аннотацию. Смысл недостающей аннотации определяется в Javadoc:

Для Target это означает

Если цель мета-аннотации нет на объявлении типа аннотаций, объявленный тип может быть использован в любой программе элемент.

и Retention это означает

Если нет Удержание аннотации не присутствует на объявлении типа аннотаций, сохранение политики по умолчанию для RetentionPolicy.CLASS.

2

Строго говоря, для аннотаций не указаны значения по умолчанию. Аннотаций просто нет.

Но для этих двух, в частности,

http://download.oracle.com/javase/1.5.0/docs/api/java/lang/annotation/Retention.html говорит

Если нет Retention аннотаций не присутствует на объявлении типа аннотаций, сохранение политики по умолчанию для RetentionPolicy.CLASS.

и то же самое для мишени,

Если цель мета-аннотаций не присутствует в объявлении типа аннотаций, объявленный тип может быть использован на любом элементе программы.

Смежные вопросы