Java аннотации

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

Следующий код объявляет аннотацию называется Test

Аннотация использует знак @  которая предшествует перед ключевым словом interface. Таким образом компилятору уже известно что объявлен тип аннотации.  Далее идут два метода,  методы в аннотациях лишь объявляются но тела они не имеют.

Все типы аннотаций автоматически расширяют интерфейс Annotation.  Annotation является супер-интерфейсом всех аннотаций. Он объявлен в пакете java.lang.annotation.

Любой тип декларации может иметь аннотацию, связанную с ним. Например, классы, методы, поля, параметры и константы перечислений могут быть аннотированы.  Во всех случаях, аннотация предшествует остальной части объявлений. При применении аннотацию, вы даете значения своим членам.

Политика удержания аннотации Java

Политика хранения определяет, в какой момент отбрасывают аннотацию.

Java определяет три такие политики:SOURCE, CLASS и RUNTIME.

  • SOURCE сохраняется только в исходном файле и отбрасывается во время компиляции.
  • CLASS хранится в файле .class во время компиляции. Он не доступен через JVM во время выполнения.
  • RUNTIME хранится в файле .class и доступен через JVM во время выполнения.

Политика хранения задается для аннотирования, используя один из встроенных в аннотации языка Java.


Его общая форма показана здесь:

удержанием должна быть одна из политик: SOURCE, CLASS или RUNTIME.  Политикой по умолчанию является CLASS.

Следующий код определяет политику хранения для среды RUNTIME.

Получаем Аннотацию во время выполнения с использованием Reflection.

Результатом работы программы будет: 50

Аннотация Java отражение

Вы можете получить все аннотации, которые имеют правила удержания RUNTIME, которые связаны с элементом,  используя для вызова метод getAnnotations () для этого элемента.

Он имеет следующий общий вид:


Следующий код показывает, как получить аннотаций из класса.

Результатом работы программы будет:

Все аннотации Meta2:
@TestPackage.What(description=Аннотация)
@TestPackage.Test(str=Meta2, one=99)
@TestPackage.What(description=метод)
@TestPackage.Test(str=Тест, one=50)

  Java аннотации Значения по умолчанию

Вы можете дать членам аннотацию значения по умолчанию. Значение по умолчанию будет использоваться, если значение для них явно не заданно. Значение по умолчанию задается добавлением ключевого слова default в объявлении аннотации.

Он имеет следующий общий вид:

Обновлено: 08.04.2017 — 11:33

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.