Страницы

Поиск по вопросам

воскресенье, 8 марта 2020 г.

Правила удержания аннотаций. SOURCE, CLASS, RUNTIME

#java #аннотации


Что обозначают правила SOURCE, CLASS и RUNTIME, инкапсулированные в перечисление
java.lang.annotation.RetentionPolicy?
    


Ответы

Ответ 1



Рассмотрим вопрос на примере аннотации @Override, которая указывает на переопределение метода. Так выглядит @Override в своей реализации @Retention(RetentionPolicy.SOURCE) public @interface Override { } SOURCE в данном случае указывает на то, что аннотация @Override (как и другая, к которой это правило будет применимо) будет "отброшена" во время компиляции. CLASS - как другое правило, указывает, что аннотация, к которой оно будет применимо, сохранится в файле с расширением .class во время компиляции, но не будет доступна для виртуальной машины JVM во время выполнения. RUNTIME - как другое правило, указывает, что аннотация, к которой оно будет применимо, сохранится в файле с расширением .class во время компиляции, и будет доступна для виртуальной машины JVM во время выполнения.

Комментариев нет:

Отправить комментарий