Android
Procesador de anotaciones
Buscar..
Introducción
El procesador de anotaciones es una herramienta desarrollada en javac para escanear y procesar anotaciones en tiempo de compilación.
Las anotaciones son una clase de metadatos que se pueden asociar con clases, métodos, campos e incluso otras anotaciones. Hay dos formas de acceder a estas anotaciones en tiempo de ejecución a través de la reflexión y en tiempo de compilación a través de los procesadores de anotación.
@NonNull Annotation
public class Foo {
private String name;
public Foo(@NonNull String name){...};
...
}
Aquí @NonNull es una anotación que es procesada por el estudio de Android para advertirle que la función particular necesita un parámetro no nulo.
Tipos de anotaciones
Hay tres tipos de anotaciones.
Anotación de marcador - anotación que no tiene método
@interface CustomAnnotation {}
Anotación de valor único : anotación que tiene un método
@interface CustomAnnotation { int value(); }
Anotación multivalor : anotación que tiene más de un método
@interface CustomAnnotation{ int value1(); String value2(); String value3(); }
Creación y uso de anotaciones personalizadas
Para crear anotaciones personalizadas necesitamos decidir
- Destino: en el que funcionarán estas anotaciones como nivel de campo, nivel de método, nivel de tipo, etc.
- Retención - a qué nivel de anotación estará disponible.
Para esto, hemos construido en anotaciones personalizadas. Echa un vistazo a estos más utilizados:
@Objetivo
@Retencion
Creación de anotaciones personalizadas
@Retention(RetentionPolicy.SOURCE) // will not be available in compiled class
@Target(ElementType.METHOD) // can be applied to methods only
@interface CustomAnnotation{
int value();
}
Uso de anotaciones personalizadas
class Foo{
@CustomAnnotation(value = 1) // will be used by an annotation processor
public void foo(){..}
}
el valor proporcionado dentro de @CustomAnnotation
será consumido por un Annotationprocessor puede ser generar código en tiempo de compilación, etc.