error - JSR305 vs. JSR308(anotaciones de tipo Java): ¿Cuál será el estándar?
javadoc ejemplo (3)
Para los futuros lectores, JSR 308 se está integrando en Java 7. Algunos de sus cambios ya se han enviado a las betas públicas de Java 7. Sin embargo, JSR305 no tuvo éxito.
Parece que hay dos JSR diferentes para las anotaciones.
JSR-305: Anotaciones para la detección de defectos de software (recurso adicional)
JSR-308: Anotaciones sobre tipos de Java (recurso adicional)
Ambos parecen estar orientados hacia el análisis de código estático.
Tú sabes:
- ¿Cuál de los dos va a estar en Java SE 7 o Java EE 6?
- ¿Qué tan estable es cada JSR?
- ¿El uno reemplaza (o obsoleta) al otro?
Puedo responder tu última pregunta. No són la misma cosa. 305 se trata de nuevas anotaciones donde ya puede colocarlas, lo que puede ayudar a proporcionar visibilidad programática en un sistema de diseño por contrato. De modo que si se supone que un determinado método no devuelve un valor nulo, o si se supone que un determinado método nunca recibe un parámetro nulo, es posible indicarle al sistema que analiza las anotaciones que debe tener en cuenta este caso específico en este fragmento de código.
308 se trata de poder anotar más cosas, como un parámetro genérico y un tipo de conversión. Imagino que un uso principal para eso es poder suprimir la advertencia en un tipo de conversión específico, en lugar de tener que declarar una variable local para ese propósito. La anotación @SuppressWarnings ya existe (mientras que JSR-305 buscaría definir otras nuevas), pero en JSR-308 podría aplicarse a más casos.
De acuerdo con this 308 será parte de Java7, lo que implicaría que está bastante bien a la vez que estable. JSR-305 no está en la lista, por lo que no parece que vaya a Java7.
Según este documento, actualizado por última vez el 2010-09-19, JSR 308 es "Aplazado a JDK 8 o posterior": http://openjdk.java.net/projects/jdk7/features/