#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 во время выполнения.
Комментариев нет:
Отправить комментарий