Многие аннотации заменяют комментарии в коде.
Предположим, что группа программного обеспечения традиционно начинает тело каждого класса комментариями, предоставляющими важную информацию:
public class Generation3List extends Generation2List {
// Author: John Doe
// Date: 3/17/2002
// Current revision: 6
// Last modified: 4/12/2004
// By: Jane Doe
// Reviewers: Alice, Bill, Cindy
// class code goes here
}
Чтобы добавить эти же метаданные с помощьюаннотации, вы должны сначала определить тип аннотации.Для этого используется следующий синтаксис:
@interface ClassPreamble {
String author();
String date();
int currentRevision() default 1;
String lastModified() default "N/A";
String lastModifiedBy() default "N/A";
// Note use of array
String[] reviewers();
}
Определение типа аннотации выглядит аналогично определению интерфейса, в котором ключевому интерфейсу предшествует знак at (@) (@ = AT, как в типе аннотации).Типы аннотаций - это форма интерфейса, которая будет рассмотрена в следующем уроке.На данный момент вам не нужно понимать интерфейсы.
Тело предыдущего определения аннотации содержит объявления элементов типа аннотации, которые очень похожи на методы.Обратите внимание, что они могут определять необязательные значения по умолчанию.
После того, как тип аннотации определен, вы можете использовать аннотации этого типа с заполненными значениями, например:
@ClassPreamble (
author = "John Doe",
date = "3/17/2002",
currentRevision = 6,
lastModified = "4/12/2004",
lastModifiedBy = "Jane Doe",
// Note array notation
reviewers = {"Alice", "Bob", "Cindy"}
)
public class Generation3List extends Generation2List {
// class code goes here
}
Источник:https://docs.oracle.com/javase/tutorial/java/annotations/declaring.html