Descripción general de los comentarios de Java:
1. Las anotaciones son para que el compilador la vea, que es diferente de las anotaciones
2. Tres anotaciones básicas:
@Override le dice al compilador que esto está anulando el método
@Depreced dígale al compilador que el método está desactualizado
@SupessWarnings ("sin control") no advierte
= (valor = {"desactivado"})
3. Las anotaciones se pueden usar para reemplazar los archivos de configuración tradicionales
4. A partir de JDK5, Java ha agregado soporte para metadatos (metadatos), a saber, anotación.
Anotaciones personalizadas y anotaciones de reflexión
Anotaciones personalizadas:
1. Cree una nueva anotación: (solo un símbolo más de @ que la definición de interfaz)
La copia del código es la siguiente:
public @Interface MyAnnotation {
//propiedad
Cadena quién ();
int age ();
String Gender ();
}
2. Establecer anotación con valores predeterminados
La copia del código es la siguiente:
public @Interface YouAnnotation {
Cadena quién () predeterminado "Tom";
int Age () predeterminado 0;
String Gender () predeterminado "mujer";
}
3. Situación de matriz
La copia del código es la siguiente:
public @interface theannotation {
Cadena [] valor ();
}
Metaannotación / metaannotación
Utilizado para modificar la anotación. (Puede ver el código fuente de @Override)
@Política de anotación de retención, utilizada para especificar los dominios que la anotación puede retener
Retenciónpolicy.class
Hay en el nivel de Bytecode, pero no son visibles en el nivel de ejecución (predeterminado)
RetentionPolicy.Runtime
Los tres niveles son visibles y se pueden reflejar durante el tiempo de ejecución.
RetententPolicy.surce solo está disponible en el nivel del código fuente y no es visible a nivel de código de bytecode.
@Target especifica el alcance de la anotación que se usa
@Documented Escriba al documento.
@La heredabilidad interna, las subclases que heredan esta clase todavía tienen las características de la clase principal como anotación.
Ej. Anotación de reflexión para realizar la conexión a la operación de la base de datos:
Las anotaciones de definición son las siguientes:
La copia del código es la siguiente:
// deja que una anotación se refleje en tiempo de ejecución
@Retention (retenciónPolicy.Runtime)
public @interface dbinfo {
String Driver () predeterminado "com.mysql.jdbc.driver";
String url () predeterminado "url = jdbc: mysql: // localhost: 3306/academic";
Cadena contraseña () predeterminada "1234";
String UserName () predeterminado "root";
}
Inyección de reflexión:
La copia del código es la siguiente:
@Dbinfo
Public Static Connection getConnection () lanza la excepción {
// Obtener el bytecode de esta clase
Class clazz = demo2.class;
// Obtenga el método público llamado getConnection () en esta clase
// Parámetro 1: Nombre del método
// Parámetro 2: el objeto Bytecode correspondiente al parámetro de tipo de método.
Método método = clazz.getMethod ("getConnection", null);
// a través de este método, obtenga la anotación definida en el método
Dbinfo dbinfo = método.getAnnotation (dbinfo.class);
Controlador de cadena = dbinfo.driver ();
Cadena url = dbinfo.url ();
String user = dbinfo.username ();
Cadena contraseña = dbinfo.password ();
Class.forname (controlador);
return drivermanager.getConnection (url, usuario, contraseña);
}