Qual è lo stato di JSR 305?


101

Ho visto la domanda JSR305 vs. JSR308 (Java Type Annotations) - Quale sarà lo standard? e capisco la differenza tra JSR 308 e JSR 305 .

Capisco anche che, in questo momento, 308 è previsto per Java 7 e 305 no, e sono curioso dello stato generale di 305.

In particolare, utilizzo le raccolte Google e JSR-305 in alcuni dei miei progetti (in modo simile a quanto sostenuto da una delle best practice di Guice ) e mi chiedevo se ci fosse un approccio più "orientato al futuro" che dovrei usare anziché. Sto pianificando di chiedere informazioni anche sul gruppo JSR-305, ma quel gruppo non ha molta attività e mi chiedevo solo se qualcuno qui avesse altre informazioni.


1
Accetterei la risposta che hai lasciato a Kevin, ma non riesco a trovare un posto in quegli articoli in cui si dice definitivamente che saranno in Java 7, o no? (E avevo rivisto quelle informazioni, brevemente, prima di pubblicare effettivamente la domanda.) Hai visto una menzione specifica che saranno incluse (come indicato nella tua risposta)? Grazie in anticipo per il vostro aiuto.
Charlie Collins,

1
Dopo tutto questo tempo e alcuni altri sforzi per capire esattamente cosa succede, premio la risposta migliore, l'unica risposta, la distinzione "risposta". ;)
Charlie Collins


Mark Reinhold ha recentemente commentato un altro post SO che "JSR 305, che avrebbe standardizzato javax.annotation.NonNull, non è mai stato completato perché le sue specifiche sono diventate AWOL".
Flusso

Risposte:


67

Come descritto in questa risposta , JSR-305 propone nuove annotazioni come @NonNull , mentre JSR-308 propone di consentire annotazioni in nuovi posti come su dichiarazioni generiche.

Citando la pagina JSR 308 :

… Questo documento non propone annotazioni, ma si limita a specificare dove possono apparire nel codice Java.

JSR 308 (annotazioni in nuovi posti) è incluso in java 8 sotto JEP 104 .

A partire dal 2017, JSR 305 (nuove annotazioni) continua a portare lo stato ufficiale di "dormiente". Una domanda sul suo stato nel gruppo Google è rimasta senza risposta dal 2010.

C'è un'implementazione di riferimento delle annotazioni JSR-305 qui che viene utilizzata da molti progetti, incluso guava. Con Maven puoi utilizzare l'implementazione di riferimento JSR-305 aggiungendo questo al tuo pom:

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

2
link a com.google.code.findbugs: jsr305 su maven central (l'ultima versione è ora 3.0.0)
Paolo Fulgoni

È possibile utilizzare la stessa versione di findbugs-maven-plugin(da org.codehaus.mojo) per sincronizzarli entrambi.
Christophe Roussy

2
Java 9 è dotato di funzionalità complete ma non è stato rilasciato e sembra che JSR-305 non sia incluso. C'era un altro JSR che ha aggiunto annotazioni simili?
dlamblin


9

Java 8 è descritto da JSR 337: la specifica ha raggiunto lo stato finale: vedere qui .

  • JSR 308 è sicuramente in
  • JSR 305 è definitivamente uscito

1

Secondo il blog Java 7 di Alex Millers , JSR-308 (e 305) dovrebbero entrare in Java 7. Forse verrà visualizzato qui e ti darà maggiori informazioni.


51
Nessuno dei due è arrivato in Java 7.
Miles

7
JSR308 sarà in Java 8, ma (marzo 2013) JSR 305 è ancora inattivo.
Maurice Naftalin
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.