suppresswarnings sirven sirve que para notacion las ejemplo crear categorias anotaciones annotation java annotations

sirven - notacion en java



¿Qué significan las constantes ElementType de anotación Java? (3)

Digamos que la anotación a la que especifica ElementType se llama YourAnnotation :

  • ANNOTATION_TYPE - Declaración de tipo de anotación. Nota: Esto va en otras anotaciones

    @YourAnnotation public @interface AnotherAnnotation {..}

  • CONSTRUCTOR - Declaración de constructor

    public class SomeClass { @YourAnnotation public SomeClass() {..} }

  • CAMPO - Declaración de campo (incluye constantes enum)

    @YourAnnotation private String someField;

  • LOCAL_VARIABLE - Declaración de variable local. Nota: Esto no se puede leer en tiempo de ejecución, por lo que se usa solo para cosas de tiempo de compilación, como la anotación @SuppressWarnings .

    public void someMethod() { @YourAnnotation int a = 0; }

  • MÉTODO - Declaración de método

    @YourAnnotation public void someMethod() {..}

  • PAQUETE - Declaración del paquete. Nota: Esto se puede usar solo en package-info.java .

    @YourAnnotation package org.yourcompany.somepackage;

  • PARÁMETRO - Declaración de parámetros

    public void someMethod(@YourAnnotation param) {..}

  • TYPE - Clase, interfaz (incluido el tipo de anotación) o declaración enum

    @YourAnnotation public class SomeClass {..}

Puede especificar múltiples ElementType para una anotación determinada. P.ej:

@Target({ElementType.CONSTRUCTOR, ElementType.METHOD})

java.lang.annotation.ElementType :

Un tipo de elemento de programa. Las constantes de este tipo enumerado proporcionan una clasificación simple de los elementos declarados en un programa Java. Estas constantes se usan con el tipo de meta-anotación de Target para especificar dónde es legal usar un tipo de anotación.

Hay las siguientes constantes:

  • ANNOTATION_TYPE - Declaración de tipo de anotación
  • CONSTRUCTOR - Declaración de constructor
  • CAMPO - Declaración de campo (incluye constantes enum)
  • LOCAL_VARIABLE - Declaración de variable local
  • MÉTODO - Declaración de método
  • PAQUETE - Declaración del paquete
  • PARÁMETRO - Declaración de parámetros
  • TYPE - Clase, interfaz (incluido el tipo de anotación) o declaración enum

¿Alguien puede explicar lo que son cada uno de ellos (dónde serían anotados en el código real)?


Esto resume los principales:

@CustomTypeAnnotation public class MyAnnotatedClass { @CustomFieldAnnotation private String foo; @CustomConstructorAnnotation public MyAnnotatedClass() { } @CustomMethodAnnotation public String bar(@CustomParameterAnnotation String str) { @CustomLocalVariableAnnotation String asdf = "asdf"; return asdf + str; } }

ANNOTATION_TYPE es una anotación en otra anotación, como esta:

@CustomAnnotationTypeAnnotation public @interface SomeAnnotation { .. }

El paquete se define en un archivo package-info.java en el paquete, como este:

@CustomPackageLevelAnnotation package com.some.package; import com.some.package.annotation.PackageLevelAnnotation;

Para obtener más información sobre las anotaciones de PAQUETES ver here y here .


TIPO :

Anotación:

@Target({ElementType.TYPE}) // This annotation can only be applied to public @interface Tweezable { // class, interface, or enum declarations. }

y un uso de ejemplo:

@Tweezable public class Hair { ... }