Trạng thái của JSR 305 là gì?


101

Tôi đã thấy câu hỏi JSR305 so với JSR308 (Chú thích kiểu Java) - Cái nào sẽ là tiêu chuẩn? và tôi hiểu sự khác biệt giữa JSR 308JSR 305 .

Tôi cũng hiểu rằng, tại thời điểm này, 308 được dự kiến ​​cho Java 7, còn 305 thì không, và tôi tò mò về trạng thái tổng thể của 305.

Cụ thể, tôi đang sử dụng Google CollectionsJSR-305 trong một số dự án của mình (theo cách tương tự với những gì một trong những người ủng hộ các phương pháp hay nhất của Guice ) và tự hỏi liệu có cách tiếp cận thân thiện hơn "hướng tương lai" mà tôi nên sử dụng không thay thế. Tôi cũng định hỏi về điều này trên nhóm JSR-305, nhưng nhóm đó không có nhiều hoạt động và tôi chỉ đang tự hỏi liệu có ai ở đây có thêm thông tin không.


1
Tôi sẽ chấp nhận câu trả lời mà bạn đã để lại cho Kevin, nhưng tôi không thể tìm thấy một vị trí nào trong những bài báo đó nơi nó nói chắc chắn rằng họ sẽ có trong Java 7, hay không? (Và tôi đã xem xét thông tin đó, một cách ngắn gọn, trước khi thực sự đăng câu hỏi.) Bạn có thấy một đề cập cụ thể trong đó mà chúng sẽ được đưa vào (như đã nêu trong câu trả lời của bạn) không? Cảm ơn trước sự giúp đỡ của bạn.
Charlie Collins

1
Sau khoảng thời gian này, và một số nỗ lực khác để tìm ra chính xác điều gì đang xảy ra, tôi đang trao giải câu trả lời hay nhất, câu trả lời duy nhất, sự phân biệt "câu trả lời". ;)
Charlie Collins


Mark Reinhold gần đây đã nhận xét về một bài đăng SO khác rằng "JSR 305, vốn đã chuẩn hóa javax.annotation.NonNull, không bao giờ hoàn thành vì đầu dẫn kỹ thuật của nó đã AWOL."
Dòng chảy

Câu trả lời:


67

Như được mô tả trong câu trả lời này , JSR-305 đề xuất các chú thích mới như @NonNull , trong khi JSR-308 đề xuất cho phép chú thích ở những vị trí mới như trên các khai báo chung.

Trích dẫn trang JSR 308 :

… Tài liệu này không đề xuất bất kỳ chú thích nào, chỉ xác định nơi chúng có thể xuất hiện trong mã Java.

JSR 308 (chú thích ở những vị trí mới) được bao gồm trong java 8 theo JEP 104 .

Kể từ năm 2017, JSR 305 (chú thích mới) tiếp tục mang trạng thái chính thức là “Dormant”. Một câu hỏi về trạng thái của nó trong nhóm google đã không được trả lời kể từ năm 2010.

Có một triển khai tham chiếu của các chú thích JSR-305 ở đây được nhiều dự án sử dụng, bao gồm cả ổi. Với maven, bạn có thể sử dụng triển khai tham chiếu JSR-305 bằng cách thêm cái này vào pom của bạn:

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

2
liên kết đến com.google.code.findbugs: JSR305 trên trung tâm maven (phiên bản mới nhất hiện nay là 3.0.0)
Paolo Fulgoni

Bạn có thể sử dụng cùng một phiên bản cho findbugs-maven-plugin(từ org.codehaus.mojo) để đồng bộ hóa cả hai.
Christophe Roussy

2
Java 9 đã hoàn thiện về tính năng nhưng chưa được phát hành và có vẻ như JSR-305 không được bao gồm. Có JSR nào khác đã thêm các chú thích tương tự không?
dlamblin


9

Java 8 được mô tả bởi JSR 337: đặc tả đã đạt đến trạng thái Cuối cùng: xem tại đây .

  • JSR 308 chắc chắn trong
  • JSR 305 chắc chắn đã hết

1

Theo blog của Alex Millers Java 7 , JSR-308 (và 305) được lên lịch để chuyển sang Java 7. Có lẽ anh ấy sẽ xuất hiện ở đây và cung cấp cho bạn thêm thông tin.


51
Không làm cho nó vào Java 7.
Miles

7
JSR308 sẽ có trong Java 8, nhưng (tháng 3 năm 2013) JSR 305 vẫn không hoạt động.
Maurice Naftalin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.