В программировании аннотации используются для добавления информации в элемент кода, который не может быть выражен системой типов.
До java1.4 аннотации были использованы только в комментариях и использовались для обозначения специальной информации, такой как автор класса или метода или ссылок на другие объекты.
В некоторых случаях они также использовались для генерации кода, облегчая java1.4 toolchain.
Поскольку эти аннотации были частью кода, их невозможно было использовать во время выполнения, поскольку они не были частью байтового кода. [ ! d8]
С java-5 аннотации стали правильной частью синтаксиса java. Аннотации могут быть определены с использованием синтаксиса, аналогичного определению интерфейсов. Они могут использоваться для аннотирования классов, методов, полей, параметров и пакетов.
В зависимости от определения в исходном коде, байтовом коде или времени выполнения доступно аннотирование. Поэтому они могут использоваться для генерации кода, обработки байтового кода во время загрузки класса и отражения во время выполнения.
Для получения дополнительной информации см. [D10] java-5 и docs.oracle.com
docs.oracle.com Атрибуты являются аналогичной концепцией аннотаций Java, они предоставляют мощный метод связывания декларативной информации с кодом C # ( типы, методы, свойства и т. д.). После привязки к объекту программы атрибут может быть запрошен во время выполнения и использован любым количеством способов.