2010-02-18 15 views
69

He visto la pregunta JSR305 vs. JSR308 (Java Type Anotations) - Which is going to be the standard? y entiendo la diferencia entre JSR 308 y JSR 305.¿Cuál es el estado de JSR 305?

También entiendo que, en este momento, 308 está programado para Java 7, y 305 no lo es, y estoy curioso sobre el estado general de 305.

Específicamente, estoy usando Google Collections y JSR-305 de alguna de mis proyectos (de manera similar a lo que one of the Guice best practices advocates) y me preguntaba si hay un enfoque más amigable con la "dirección futura" que debería usar en su lugar. Estoy planeando también preguntar acerca de esto en el grupo JSR-305, pero ese grupo no tiene mucha actividad y me preguntaba si alguien aquí tenía más información.

+1

yo aceptaría la respuesta lo dejó a Kevin, pero no puedo encontrar un lugar en aquellos artículos en los que se dice que lo harán definitivamente estar en Java 7, o no? (Y había revisado esa información, brevemente, antes de publicar la pregunta en realidad.) ¿Vio una mención específica allí que * se * incluirá (como se indica en su respuesta)? Gracias de antemano por tu ayuda. –

+1

Después de tanto tiempo, y algunos otros esfuerzos para descubrir exactamente qué sucede, otorgo la mejor respuesta, la única respuesta, la distinción de "respuesta". ;) –

+0

Java 9: ​​https://stackoverflow.com/questions/37598775/jsr-305-annotations-replacement-for-java-9 –

Respuesta

41

Como se describe en este answer, JSR-305 propone nuevas anotaciones tales como @NonNull, mientras JSR-308 propone permitir anotaciones en nuevos lugares, como en las declaraciones genéricas.

Citando JSR 308 página:

... este documento no propone ninguna anotación, simplemente especificando en el que puedan aparecer en código Java.

JSR 308 (anotaciones en nuevos lugares) está incluido en java 8 bajo JEP 104.

A partir de 2017, JSR 305 (nuevas anotaciones) continúa con el estado oficial de "Durmiente". No se ha respondido un question sobre su estado en el grupo de google desde 2010.

Hay una implementación de referencia de las anotaciones JSR-305 here que es utilizada por muchos proyectos, incluida la guayaba. Con experto puede utilizar la implementación de referencia de JSR-305 añadiendo esto a su pom,

<dependency> 
    <groupId>com.google.code.findbugs</groupId> 
    <artifactId>jsr305</artifactId> 
    <version>3.0.0</version> 
</dependency> 
+1

enlace a [com.google.code.findbugs: jsr305 en maven central] (http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.google.code.findbugs%22%20AND % 20a% 3A% 22jsr305% 22) (la última versión es ahora 3.0.0) –

+0

Puede usar la misma versión que para el 'findbugs-maven-plugin' (de' org.codehaus.mojo') para sincronizar ambos. –

+1

Java 9 es una característica completa pero no publicada, y parece que JSR-305 no está incluida. ¿Hubo otra JSR que agregó anotaciones similares? – dlamblin

1

De acuerdo con Alex Millers Java 7 blog, JSR-308 (y 305) están programados para entrar en Java 7. Quizás él se mostrará aquí y le dará más información.

+47

Ni lo hizo en Java 7. – Miles

+6

JSR308 estará en Java 8, pero (Mar 2013) JSR 305 aún está inactivo. –

5

Java 8 está descrito por JSR 337: la especificación ha alcanzado el estado final: see here.

  • JSR 308 está definitivamente en
  • JSR 305 está definitivamente fuera
Cuestiones relacionadas