Jaki jest stan JSR 305?


101

Widziałem pytanie JSR305 kontra JSR308 (anotacje typu Java) - który będzie standardem? i rozumiem różnicę między JSR 308 i JSR 305 .

Rozumiem również, że w tej chwili 308 jest przeznaczone dla Javy 7, a 305 nie, i jestem ciekawy ogólnego stanu 305.

W szczególności używam Google Collections i JSR-305 w niektórych moich projektach (w podobny sposób, jak jeden z zwolenników najlepszych praktyk Guice ) i zastanawiałam się, czy jest bardziej przyjazne dla „przyszłego kierunku” podejście, którego powinienem użyć zamiast. Planuję również o to zapytać na grupie JSR-305, ale ta grupa nie jest zbyt aktywna i zastanawiałem się tylko, czy ktoś tutaj ma więcej informacji.


1
Przyjąłbym odpowiedź, którą zostawiłeś Kevinowi, ale nie mogę znaleźć miejsca w tych artykułach, w których jest napisane, że będą one w Javie 7, czy nie? (I przejrzałem te informacje, krótko, zanim opublikowałem pytanie.) Czy zauważyłeś tam konkretną wzmiankę, że zostaną uwzględnione (jak wskazano w twojej odpowiedzi)? Z góry dziękuje za twoją pomoc.
Charlie Collins

1
Po tak długim czasie i kilku innych próbach ustalenia, o co chodzi, przyznaję najlepszą odpowiedź, jedyną odpowiedź, wyróżnienie „odpowiedź”. ;)
Charlie Collins


Mark Reinhold niedawno skomentował inny wpis SO, że „JSR 305, który ustandaryzowałby javax.annotation.NonNull, nigdy nie został ukończony, ponieważ jego kierownik specyfikacji stracił ważność”.
Flow

Odpowiedzi:


67

Jak opisano w tej odpowiedzi , JSR-305 proponuje nowe adnotacje, takie jak @NonNull , podczas gdy JSR-308 proponuje zezwolenie na adnotacje w nowych miejscach, na przykład w deklaracjach ogólnych.

Cytując stronę JSR 308 :

… Niniejszy dokument nie proponuje żadnych adnotacji, a jedynie określa, gdzie mogą się one pojawiać w kodzie Java.

JSR 308 (adnotacje w nowych miejscach) znajduje się w java 8 w JEP 104 .

Od 2017 roku JSR 305 (nowe adnotacje) nadal ma oficjalny status „Uśpiony”. Pytanie o jego statusie w grupie Google został bez odpowiedzi od 2010 roku.

Znajduje się tutaj przykładowa implementacja adnotacji JSR-305 , która jest używana w wielu projektach, w tym w guawie. Dzięki maven możesz użyć implementacji referencyjnej JSR-305, dodając do swojego pom:

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

2
link do com.google.code.findbugs: jsr305 na maven central (najnowsza wersja to teraz 3.0.0)
Paolo Fulgoni

Możesz użyć tej samej wersji, co dla findbugs-maven-plugin(from org.codehaus.mojo), aby zsynchronizować obie.
Christophe Roussy

2
Java 9 jest kompletna, ale nie została wydana i wygląda na to, że JSR-305 nie jest dołączona. Czy był inny JSR, który dodał podobne adnotacje?
dlamblin


9

Java 8 jest opisana przez JSR 337: specyfikacja osiągnęła stan końcowy: patrz tutaj .

  • JSR 308 jest zdecydowanie w grze
  • JSR 305 jest zdecydowanie niedostępny

1

Według bloga Alexa Millersa Java 7 , JSR-308 (i 305) mają przejść do Java 7. Być może pojawi się tutaj i poda więcej informacji.


51
Żaden z nich nie dotarł do Javy 7.
Miles,

7
JSR308 będzie w Javie 8, ale (marzec 2013) JSR 305 jest nadal nieaktywny.
Maurice Naftalin
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.