Как создать свою аннотацию
Аннотация задается описанием соответствующего интерфейса. Например так:
import java.lang.annotation.*;
@Target(value=ElementType.FIELD)
@Retention(value= RetentionPolicy.RUNTIME)
public @interface Name {
String name();
String type() default “string”;
}
Как видно из примера выше, аннотация определяется описанием с ключевым словом interface и может включать в себя несколько полей, которые можно задать как обязательными, так и не обязательными. В последнем случае подставляется default значение поля. Также из примера видно, что саму аннотацию можно пометить несколькими аннотациями. Разберемся для начала, чем можно пометить собственную аннотацию, и зачем.
- @Retention позволяет указать жизненный цикл аннотации: будет она присутствовать только в исходном коде, в скомпилированном файле, или она будет также видна и в процессе выполнения. Выбор нужного типа зависит от того, как вы хотите использовать аннотацию, например, генерировать что-то побочное из исходных кодов, или в процессе выполнения стучаться к классу через reflection.
- @Target указывает, что именно мы можем пометить этой аннотацией, это может быть поле, метод, тип и т. д.
- @Documentedуказывает, что помеченная таким образом аннотация должна быть добавлена в javadoc поля/метода и т. д.
- @Inherited помечает аннотацию, которая будет унаследована потомком класса, отмеченного такой аннотацией.
Oct. 22, 2023, Источник