java - tutorial - Anotación FUENTE Política de retención
java annotations (1)
Del documento de Java:
CLASE: las anotaciones deben ser registradas en el archivo de clase por el compilador, pero no es necesario que la VM las retenga en tiempo de ejecución.
DURACIÓN: las anotaciones deben ser registradas en el archivo de clase por el compilador y retenidas por la VM en tiempo de ejecución, por lo que pueden leerse de manera reflexiva.
FUENTE: las anotaciones deben ser descartadas por el compilador.
Entiendo los usos de RUNTIME (para usar anotación con reflexión) y CLASS (para el compilador) pero no entiendo cuándo puede ser útil usar
@Retention (RetentionPolicy.SOURCE)
¿Puedes explicar?
Cosas como @SuppressWarnings, @Override son anotaciones utilizadas por el compilador, no necesarias en el tiempo de ejecución. Para aquellos RetentionPolicy.SOURCE tendría sentido. También se pueden usar anotaciones para generar código (consulte Spring ROO); dicha anotación tampoco es necesaria en tiempo de ejecución.