Bagaimana status JSR 305?

101

Saya telah melihat pertanyaan JSR305 vs JSR308 (Java Type Anotations) - Mana yang akan menjadi standar? dan saya memahami perbedaan antara JSR 308 dan JSR 305 .

Saya juga memahami bahwa, saat ini, 308 dijadwalkan untuk Java 7, dan 305 tidak, dan saya ingin tahu tentang status keseluruhan 305.

Secara khusus, saya menggunakan Google Collections dan JSR-305 di beberapa proyek saya (dengan cara yang mirip dengan salah satu pendukung praktik terbaik Guice ) dan bertanya-tanya apakah ada pendekatan yang lebih ramah "arah masa depan" yang harus saya gunakan sebagai gantinya. Saya berencana juga menanyakan hal ini pada grup JSR-305, tetapi grup itu tidak memiliki banyak aktivitas dan saya hanya ingin tahu apakah ada orang di sini yang memiliki info lebih lanjut.

Charlie Collins
sumber
1
Saya akan menerima jawaban yang Anda tinggalkan Kevin, tetapi saya tidak dapat menemukan tempat di artikel yang mengatakan secara pasti mereka akan berada di Java 7, atau tidak? (Dan saya telah meninjau info itu, secara singkat, sebelum memposting pertanyaan sebenarnya.) Apakah Anda melihat sebutan khusus di sana yang akan disertakan (seperti yang ditunjukkan dalam jawaban Anda)? Terima kasih sebelumnya atas bantuan Anda.
Charlie Collins
1
Setelah waktu yang lama ini, dan beberapa upaya lain untuk mencari tahu apa yang sebenarnya terjadi, saya memberikan jawaban terbaik, satu-satunya jawaban, perbedaan "jawaban". ;)
Charlie Collins
Java 9: stackoverflow.com/questions/37598775/…
Christophe Roussy
Mark Reinhold baru-baru ini mengomentari posting SO lain bahwa "JSR 305, yang akan menstandarkan javax.annotation.NonNull, tidak pernah selesai karena prospek speknya menjadi AWOL."
Aliran

Jawaban:

67

Seperti yang dijelaskan dalam jawaban ini , JSR-305 mengusulkan anotasi baru seperti @NonNull , sedangkan JSR-308 mengusulkan anotasi di tempat baru seperti pada deklarasi generik.

Mengutip halaman JSR 308 :

… Dokumen ini tidak mengusulkan anotasi apa pun, hanya menentukan di mana anotasi tersebut dapat muncul dalam kode Java.

JSR 308 (penjelasan di tempat baru) termasuk dalam java 8 di bawah JEP 104 .

Pada 2017, JSR 305 (penjelasan baru) terus memiliki status resmi "Tidak Aktif". Sebuah pertanyaan tentang statusnya di grup google tidak terjawab sejak 2010.

Ada implementasi referensi anotasi JSR-305 di sini yang digunakan oleh banyak proyek, termasuk jambu biji. Dengan maven Anda dapat menggunakan implementasi referensi JSR-305 dengan menambahkan ini ke pom Anda:

<dependency>
    <groupId>com.google.code.findbugs</groupId>
    <artifactId>jsr305</artifactId>
    <version>3.0.0</version>
</dependency>
jembatan
sumber
2
tautan ke com.google.code.findbugs: jsr305 di maven central (versi terbaru sekarang 3.0.0)
Paolo Fulgoni
Anda dapat menggunakan versi yang sama untuk findbugs-maven-plugin(dari org.codehaus.mojo) untuk menyinkronkan keduanya.
Christophe Roussy
2
Java 9 adalah fitur lengkap tetapi tidak dirilis, dan tampaknya JSR-305 tidak disertakan. Apakah ada JSR lain yang menambahkan penjelasan serupa?
dlamblin
9

Java 8 dijelaskan oleh JSR 337: spesifikasi telah mencapai status Final: lihat di sini .

  • JSR 308 sudah pasti masuk
  • JSR 305 sudah pasti keluar
Glen Best
sumber
1

Menurut blog Alex Miller Java 7 , JSR-308 (dan 305) dijadwalkan masuk ke Java 7. Mungkin dia akan muncul di sini dan memberi Anda informasi lebih lanjut.

Kevin
sumber
51
Tidak ada yang berhasil masuk ke Jawa 7.
Miles
7
JSR308 akan berada di Java 8, tetapi (Mar 2013) JSR 305 masih tidak aktif.
Maurice Naftalin