Java ¿Qué son las anotaciones y una introducción detallada a los principios de anotación?
1. Las anotaciones son instrucciones para el compilador de Java.
Puedes anotar paquetes Java, tipos (clases, interfaces, enumeraciones), constructores, métodos, campos, parámetros y variables locales. El compilador de Java puede interpretar anotaciones y descartarlas de acuerdo con las instrucciones, o agregar anotaciones al archivo de clase compilado y generado, que está disponible en tiempo de ejecución.
2. Anotaciones y tipos de anotaciones
El tipo de anotación es un tipo de interfaz especial y la anotación es una instancia del tipo de anotación.
El tipo de anotación también tiene un nombre y miembros. La información contenida en la anotación está en forma de pares clave-valor y puede haber 0 o más.
3. Algunas anotaciones definidas en Java:
@Override le dice al compilador que este método debe anular un método de superclase para evitar que los programadores sobrescriban errores.
@Deprecated Identifica el método o clase (interfaz y otros tipos) como caducado y advierte al usuario que no se recomienda su uso.
@SafeVarargs es nuevo en JDK7 para evitar la advertencia "No se puede confirmar el tipo de parámetro durante la ejecución" cuando se usan parámetros variables genéricos. Por supuesto, también puede usar @SuppressWarnings para evitar la verificación, obviamente esto último es. suprimido El alcance es mayor.
@SuppressWarnings(value={"unchecked"}) Suprime las advertencias de compilación, se aplica a tipos, constructores, métodos, campos, parámetros y variables locales.
el valor es un tipo de matriz, los valores válidos son:
todos, para suprimir todas las advertencias
boxing, para suprimir las advertencias relativas a las operaciones de boxing/unboxing
cast, para suprimir advertencias relativas a operaciones de conversión
dep-ann, para suprimir advertencias relativas a anotaciones obsoletas
desaprobación, para suprimir advertencias relativas a desuso
fallthrough , para suprimir advertencias relativas a pausas faltantes en declaraciones de cambio
finalmente, para suprimir advertencias relativas al bloque finalmente que no regresan
ocultar, para suprimir advertencias relativas a locales que ocultan variables
p>
incomplete-switch, para suprimir advertencias relativas a entradas faltantes en una declaración de cambio (caso de enumeración)
javadoc, para suprimir advertencias relativas a advertencias de javadoc
nls, para suprimir advertencias relativas a literales de cadena que no sean nls
null, para suprimir advertencias relativas a análisis nulos
rawtypes, para suprimir advertencias relativas al uso de tipos sin formato
restricción, para suprimir advertencias relativas al uso de referencias prohibidas o desaconsejadas
serial, para suprimir advertencias relativas a la falta del campo serialVersionUID para una clase serializable
static- acceso, para suprimir advertencias relativas a acceso estático incorrecto
método-estático, para suprimir advertencias relativas a métodos que podrían declararse como estáticos
super, para suprimir advertencias relativas a la anulación de un método sin superinvocaciones
acceso sintético, para suprimir advertencias relativas al acceso no optimizado desde clases internas
u
nchecked, para suprimir advertencias relativas a operaciones no marcadas
acceso a campos no calificados, para suprimir advertencias relativas a accesos a campos no calificados
unused, para suprimir advertencias relativas a códigos no utilizados y códigos inactivos
4. Definición de anotaciones
Utilice la palabra clave @interface para declarar una anotación
public @interface MyAnnotation1
Los atributos se pueden definir en anotaciones
Nombre de cadena predeterminado “defval”;
el valor es un atributo especial en la anotación
Si el nombre del atributo definido en la anotación es valor, este atributo se puede utilizar cuando se omite el nombre del atributo
Por ejemplo, declara una anotación:
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnno1 {
Mensaje de cadena();
int valor();
}