2010-02-18 49 views
69

Tôi đã xem câu hỏi JSR305 vs. JSR308 (Java Type Anotations) - Which is going to be the standard? và tôi hiểu sự khác biệt giữa JSR 308JSR 305.Trạng thái của JSR 305 là gì?

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

Cụ thể, tôi đang sử dụng Google CollectionsJSR-305 trong một số của các dự án của tôi (theo cách tương tự như những gì one of the Guice best practices advocates) và đã tự hỏi nếu có một phương pháp tiếp cận thân thiện hơn "hướng tương lai" tôi nên sử dụng thay thế. Tôi đang lên kế hoạch cũng 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ỉ tự hỏi liệu có ai ở đây có thêm thông tin hay không.

+1

tôi sẽ chấp nhận câu trả lời bạn rời Kevin, nhưng tôi không thể tìm thấy một chỗ trong những điều mà nó nói dứt khoát họ sẽ trong Java 7, hay không? (Và tôi đã xem xét thông tin đó, một thời gian ngắn trước khi đăng câu hỏi thực sự.) Bạn có thấy một đề cập cụ thể trong đó rằng họ * sẽ * được đưa vào (như được 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. –

+1

Sau nhiều lần, và một số nỗ lực khác để tìm ra chính xác những gì đang diễn ra, tôi đang trao giải đáp tốt nhất, câu trả lời duy nhất, sự phân biệt "trả lời". ;) –

+0

Java 9: ​​https://stackoverflow.com/questions/37598775/jsr-305-annotations-replacement-for-java-9 –

Trả lời

41

Như được mô tả trong answer, JSR-305 đề xuất 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 khai báo chung.

Trích dẫn JSR 308 page:

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

JSR 308 (chú thích ở địa điểm mới) được bao gồm trong java 8 dưới 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 của “Không hoạt động”. A question về trạng thái của nó trong nhóm google chưa được trả lời kể từ năm 2010.

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

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

liên kết đến [com.google.code.findbugs: jsr305 trên maven center] (http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22com.google.code.findbugs%22%20AND % 20a% 3A% 22jsr305% 22) (phiên bản mới nhất hiện nay là 3.0.0) –

+0

Bạn có thể sử dụng phiên bản tương tự như đối với 'findbugs-maven-plugin' (từ' org.codehaus.mojo') để đồng bộ hóa cả hai. –

+1

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

1

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

+47

Không biến nó thành Java 7. – Miles

+6

JSR308 sẽ có trong Java 8, nhưng (Mar 2013) JSR 305 vẫn không hoạt động. –

5

Java 8 được mô tả bởi JSR 337: đặc điểm kỹ thuật đã đạt đến Trạng thái cuối cùng: see here.

  • JSR 308 chắc chắn trong
  • JSR 305 là chắc chắn ra
Các vấn đề liên quan