1. ¿Qué es una anotación duplicada?
Permite múltiples usos de la misma anotación en el mismo tipo declarado (clase, propiedad o método)
2. Un ejemplo sencillo
Antes de Java 8, también existían soluciones para reutilizar anotaciones, pero la legibilidad no era muy buena, como el siguiente código:
Copie el código de código de la siguiente manera:
autoridad pública @interface {
Rol de cadena();
}
@interface pública Autoridades {
Autoridad[] valor();
}
clase pública RepetirAnnotationUseOldVersion {
@Autoridades({@Autoridad(rol="Administrador"),@Autoridad(rol="Administrador")})
vacío público hacer algo(){
}
}
Utilice otra anotación para almacenar anotaciones repetidas. Cuando la use, use las Autoridades de anotación de almacenamiento para extender las anotaciones repetidas. Echemos un vistazo al método en Java 8:
Copie el código de código de la siguiente manera:
@Repetible(Autoridades.clase)
autoridad pública @interface {
Rol de cadena();
}
@interface pública Autoridades {
Autoridad[] valor();
}
clase pública RepetirAnnotationUseNewVersion {
@Autoridad(rol="Administrador")
@Autoridad(rol="Administrador")
vacío público hacer algo(){ }
}
La diferencia es que al crear la Autoridad de anotación repetida, agregue @Repeatable para apuntar a las Autoridades de anotación almacenadas. Al usarlo, la anotación de Autoridad se puede reutilizar directamente. En el ejemplo anterior, podemos ver que el enfoque en Java 8 es más adecuado para el pensamiento convencional y es más legible.
3. Resumen
JEP120 no tiene mucho contenido, es una pequeña característica solo para mejorar la legibilidad del código. Esta vez Java 8 ha realizado dos mejoras en las anotaciones (JEP 104, JEP120). Creo que las anotaciones se utilizarán con más frecuencia que antes.