Wie ist der Status von JSR 305?


101

Ich habe die Frage JSR305 vs. JSR308 (Java Type Anotations) gesehen - Welches wird der Standard sein? und ich verstehe den Unterschied zwischen JSR 308 und JSR 305 .

Ich verstehe auch, dass derzeit 308 für Java 7 vorgesehen ist und 305 nicht, und ich bin gespannt auf den Gesamtstatus von 305.

Insbesondere verwende ich Google Collections und JSR-305 in einigen meiner Projekte (ähnlich wie bei einem der Best Practices von Guice ) und habe mich gefragt, ob es einen "zukunftsorientierteren" Ansatz gibt, den ich verwenden sollte stattdessen. Ich habe vor, dies auch in der JSR-305-Gruppe zu erfragen, aber diese Gruppe hat nicht viel Aktivität und ich habe mich nur gefragt, ob hier jemand weitere Informationen hat.


1
Ich würde die Antwort akzeptieren, die Sie Kevin hinterlassen haben, aber ich kann in diesen Artikeln keinen Platz finden, an dem definitiv steht, dass sie in Java 7 sein werden, oder nicht? (Und ich hatte diese Informationen kurz überprüft, bevor ich die Frage tatsächlich gestellt habe.) Haben Sie dort eine spezifische Erwähnung gesehen, dass sie aufgenommen werden (wie in Ihrer Antwort angegeben)? Vielen Dank im Voraus für Ihre Hilfe.
Charlie Collins

1
Nach so viel Zeit und einigen anderen Bemühungen, genau herauszufinden, was los ist, vergebe ich die beste Antwort, die einzige Antwort, die Unterscheidung "Antwort". ;)
Charlie Collins


Mark Reinhold kommentierte kürzlich einen anderen SO-Beitrag, dass "JSR 305, der javax.annotation.NonNull standardisiert hätte, nie abgeschlossen wurde, weil sein Spezifikationsvorsprung AWOL ging."
Flow

Antworten:


67

Wie in dieser Antwort beschrieben , schlägt JSR-305 neue Anmerkungen wie @NonNull und JSR-308 vor vorschlägt, Anmerkungen an neuen Stellen wie bei allgemeinen Deklarationen zuzulassen.

Zitieren von JSR 308 Seite:

… Dieses Dokument enthält keine Anmerkungen, sondern gibt lediglich an, wo sie im Java-Code erscheinen können.

JSR 308 (Anmerkungen an neuen Stellen) ist in Java 8 unter JEP 104 enthalten .

Ab 2017 hat JSR 305 (neue Anmerkungen) weiterhin den offiziellen Status „Ruhend“. Eine Frage zum Status in der Google-Gruppe ist seit 2010 unbeantwortet.

Hier gibt es eine Referenzimplementierung der JSR-305-Annotationen , die von vielen Projekten verwendet wird, einschließlich Guave. Mit maven können Sie die JSR-305-Referenzimplementierung verwenden, indem Sie diese zu Ihrem pom hinzufügen:

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

2
Link zu com.google.code.findbugs: jsr305 auf Maven Central (neueste Version ist jetzt 3.0.0)
Paolo Fulgoni

Sie können dieselbe Version wie für findbugs-maven-plugin(von org.codehaus.mojo) verwenden, um beide zu synchronisieren.
Christophe Roussy

2
Java 9 ist vollständig, aber nicht freigegeben, und es sieht so aus, als ob JSR-305 nicht enthalten ist. Gab es einen anderen JSR, der ähnliche Anmerkungen hinzufügte?
Dlamblin


9

Java 8 wird in JSR 337 beschrieben: Die Spezifikation hat den Endstatus erreicht: siehe hier .

  • JSR 308 ist definitiv in
  • JSR 305 ist definitiv raus

1

Laut Alex Millers Java 7-Blog sollen JSR-308 (und 305) auf Java 7 zugreifen. Vielleicht wird er hier auftauchen und Ihnen weitere Informationen geben.


51
Weder schaffte es in Java 7.
Meilen

7
JSR308 wird in Java 8 sein, aber (März 2013) JSR 305 ist noch inaktiv.
Maurice Naftalin
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.