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 "el tipo de parámetro no se puede confirmar específicamente 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. está 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 anulación de un método sin super invocaciones
>
acceso sintético, para suprimir advertencias relativas al acceso no optimizado desde clases internas
desmarcado, para suprimir advertencias relativas a operaciones no comprobadas
acceso a campo no calificado, para suprimir advertencias relativo al acceso al campo no calificado
no utilizado, para suprimir advertencias relativas al código no utilizado y al código inactivo
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 está en la anotación Atributos especiales
Si el nombre de un atributo definido en una anotación es valor, el nombre del atributo se puede omitir al usar este atributo
Por ejemplo, declarar una anotación: p>
@ Retención(RetentionPolicy.RUNTIME)
public @interface MyAnno1 {
String msg();
int value(); p>
}