Аннотация (Java)

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Java-аннотация — в языке Java специальная форма синтетических метаданных, которая может быть добавлена в исходный код.

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

В общем виде выглядит как @ + имя аннотации, написанное перед именем переменной, параметра, метода, класса, пакета, либо перед их модификаторами.

Применение[править | править исходный текст]

Аннотация выполняет следующие функции:

  • дает необходимую информацию для компилятора;
  • дает информацию различным инструментам для генерации другого кода, конфигураций и т. д.;
  • может использоваться во время работы кода;

Встроенные аннотации[править | править исходный текст]

  • Аннотации, применяемые к java-коду:
  • @Override — проверяет, переопределен ли метод. Вызывает предупреждение компиляции, если метод не найден в родительском классе;
  • @Deprecated — отмечает, что метод устарел. Вызывает предупреждение компиляции, если метод используется;
  • @SuppressWarnings — указывает компилятору подавить предупреждения компиляции, определенные в параметрах аннотации;
  • Аннотации, применяемые к другим аннотациям:
  • @Retention — определяет, как отмеченная аннотация может храниться — в коде, в скомпилированном классе или во время работы кода;
  • @Documented — отмечает аннотацию для включения в документацию;
  • @Target — отмечает аннотацию как ограничивающую, какие элементы java-аннотации могут быть к ней применены;
  • @Inherited — отмечает, что аннотация может быть расширена подклассами аннотируемого класса;

Пример[править | править исходный текст]

public class Animal {
 
    public void speak() {
    }    
}
 
public class Cat extends Animal {
 
    @Override // Аннотация говорящая о том, что этот метод переопределен
    public void speak() { 
       System.out.println("Meow."); 
    }
 
    @Deprecated // Аннотация говорящая о том, что этот метод более не поддерживается и будет удалён в ближайшее время
    public boolean soundsGood() {
        return true;
    }
}

История[править | править исходный текст]

Первоначально в платформе Java имелся механизм, предваряющий механизм аннотаций — например, модификатор transient или тэг @deprecated. В сентябре 2002 года сообществу Java представлен документ JSR-175, описывающий основные тезисы по аннотациям. Он был утвержден в 2004 году. Аннотации стали доступны в самом языке начиная с версии 1.5 JDK и описаны в JSR-269. В версии 1.6 аннотации были интегрированы в компилятор javac.

Ссылки[править | править исходный текст]