Android
Обработчик аннотации
Поиск…
Вступление
Обработчик аннотации - это инструмент, созданный в javac для сканирования и обработки аннотаций во время компиляции.
Аннотации - это класс метаданных, которые могут быть связаны с классами, методами, полями и даже другими аннотациями. Существует два способа доступа к этим аннотациям во время выполнения через отражение и во время компиляции с помощью обработчиков аннотаций.
@NonNull Annotation
public class Foo {
private String name;
public Foo(@NonNull String name){...};
...
}
Здесь @NonNull - это аннотация, которая обрабатывается временем компиляции студией android, чтобы предупредить вас о том, что для конкретной функции нужен параметр non null.
Типы аннотаций
Существует три типа аннотаций.
Маркерная аннотация - аннотация, не имеющая метода
@interface CustomAnnotation {}
Однозначная аннотация - аннотация, которая имеет один метод
@interface CustomAnnotation { int value(); }
Многозначная аннотация - аннотация, содержащая несколько методов
@interface CustomAnnotation{ int value1(); String value2(); String value3(); }
Создание и использование пользовательских аннотаций
Для создания пользовательских аннотаций нам необходимо решить
- Цель - по которой эти аннотации будут работать как на уровне поля, уровне метода, так и на уровне типа и т. Д.
- Сохранение - на каком уровне будет доступна аннотация.
Для этого мы создали пользовательские аннотации. Ознакомьтесь с этими наиболее часто используемыми:
@Target
@Retention
Создание пользовательской аннотации
@Retention(RetentionPolicy.SOURCE) // will not be available in compiled class
@Target(ElementType.METHOD) // can be applied to methods only
@interface CustomAnnotation{
int value();
}
Использование пользовательской аннотации
class Foo{
@CustomAnnotation(value = 1) // will be used by an annotation processor
public void foo(){..}
}
значение, предоставленное внутри @CustomAnnotation
будет потребляться процессором Annotation, это может генерировать код во время компиляции и т. д.