สถานะของ JSR 305 คืออะไร?


101

ฉันได้เห็นคำถามJSR305 กับ JSR308 (Java Type Anotations) - ข้อใดจะเป็นมาตรฐาน และผมเข้าใจความแตกต่างระหว่างJSR 308และJSR 305

ฉันเข้าใจด้วยว่าในเวลานี้ 308 ถูกกำหนดไว้สำหรับ Java 7 และ 305 ไม่ใช่และฉันอยากรู้เกี่ยวกับสถานะโดยรวมของ 305

โดยเฉพาะอย่างยิ่งฉันใช้Google CollectionsและJSR-305ในบางโครงการของฉัน (ในลักษณะที่คล้ายคลึงกับแนวทางปฏิบัติที่ดีที่สุดของ Guice ) และสงสัยว่าจะมีแนวทาง "ทิศทางในอนาคต" ที่เป็นมิตรมากกว่าที่ฉันควรใช้หรือไม่ แทน. ฉันวางแผนที่จะถามเกี่ยวกับเรื่องนี้ในกลุ่ม JSR-305 แต่กลุ่มนั้นไม่มีกิจกรรมมากนักและฉันแค่สงสัยว่ามีใครที่นี่มีข้อมูลเพิ่มเติมหรือไม่


1
ฉันยอมรับคำตอบที่คุณทิ้งไว้ให้กับเควิน แต่ฉันไม่พบสถานที่ในบทความเหล่านั้นที่ระบุไว้อย่างชัดเจนว่าพวกเขาจะอยู่ใน Java 7 หรือไม่? (และฉันได้ตรวจสอบข้อมูลนั้นสั้น ๆ ก่อนที่จะโพสต์คำถามจริง) คุณเห็นการกล่าวถึงที่เฉพาะเจาะจงว่าจะรวมอยู่ในนั้นหรือไม่ (ตามที่ระบุไว้ในคำตอบของคุณ) ขอบคุณล่วงหน้าสำหรับความช่วยเหลือของ.
Charlie Collins

1
หลังจากนั้นไม่นานและความพยายามอื่น ๆ เพื่อหาว่าเกิดอะไรขึ้นฉันกำลังให้คำตอบที่ดีที่สุดคำตอบเดียวคือความแตกต่างของ "คำตอบ" ;)
Charlie Collins


เมื่อเร็ว ๆ นี้ Mark Reinhold แสดงความคิดเห็นในโพสต์ SO อื่นว่า "JSR 305 ซึ่งจะสร้างมาตรฐาน javax.annotation.NonNull ไม่เสร็จสมบูรณ์เพราะผู้นำสเปคไป AWOL"
ไหล

คำตอบ:


67

ตามที่อธิบายในเรื่องนี้คำตอบ , JSR-305เสนอคำอธิบายประกอบใหม่ ๆ เช่น@NonNullขณะJSR-308เสนอคำอธิบายประกอบการอนุญาตให้อยู่ในสถานที่ใหม่ ๆ เช่นในการประกาศทั่วไป

อ้างถึงหน้าJSR 308 :

…เอกสารนี้ไม่ได้เสนอคำอธิบายประกอบใด ๆ เพียงระบุตำแหน่งที่สามารถปรากฏในโค้ด Java

JSR 308 (คำอธิบายประกอบในสถานที่ใหม่ ๆ ) รวมอยู่ในจาวา 8ภายใต้JEP 104

ในปี 2017 JSR 305 (คำอธิบายประกอบใหม่) ยังคงมีสถานะเป็นทางการของ "ไม่อยู่นิ่ง" คำถามเกี่ยวกับเรื่องของสถานะในกลุ่ม Google ที่ได้รับตั้งแต่ปี 2010 ยังไม่ได้ตอบ

มีการอ้างอิงการใช้งานคำอธิบายประกอบ JSR-305 ที่นี่ซึ่งใช้โดยหลายโครงการรวมทั้งฝรั่ง ด้วย maven คุณสามารถใช้การใช้งานอ้างอิง JSR-305 ได้โดยเพิ่มสิ่งนี้ใน pom ของคุณ:

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

2
ลิงก์ไปยังcom.google.code.findbugs: jsr305 บน maven central (เวอร์ชันล่าสุดคือ 3.0.0)
Paolo Fulgoni

คุณสามารถใช้เวอร์ชันเดียวกับfindbugs-maven-plugin(จากorg.codehaus.mojo) เพื่อซิงค์ทั้งสองอย่าง
Christophe Roussy

2
Java 9 เป็นคุณลักษณะที่สมบูรณ์ แต่ไม่ได้เปิดตัวและดูเหมือนว่าจะไม่มี JSR-305 มี JSR อื่นที่เพิ่มคำอธิบายประกอบที่คล้ายกันหรือไม่?
dlamblin


9

Java 8 อธิบายโดย JSR 337: สเปคได้ถึงสถานะสุดท้าย: ดูที่นี่

  • JSR 308 อยู่ใน
  • JSR 305 ออกแน่นอน

1

ตามบล็อกของ Alex Millers Java 7 JSR-308 (และ 305) มีกำหนดเข้าสู่ Java 7 บางทีเขาอาจจะมาที่นี่และให้ข้อมูลเพิ่มเติมแก่คุณ


51
ไม่ได้ทำให้เป็น Java 7
ไมล์

7
JSR308 จะอยู่ใน Java 8 แต่ (มี.ค. 2013) JSR 305 ยังอยู่เฉยๆ
Maurice Naftalin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.