1. คำอธิบายประกอบที่ซ้ำกันคืออะไร
อนุญาตให้ใช้คำอธิบายประกอบเดียวกันหลายครั้งในประเภทที่ประกาศเดียวกัน (คลาส คุณสมบัติ หรือวิธีการ)
2. ตัวอย่างง่ายๆ
ก่อน Java 8 มีวิธีแก้ไขปัญหาสำหรับการนำคำอธิบายประกอบกลับมาใช้ใหม่ด้วย แต่ความสามารถในการอ่านไม่ดีนัก เช่น โค้ดต่อไปนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
สาธารณะ @interface ผู้มีอำนาจ {
บทบาทสตริง ();
-
หน่วยงาน @interface สาธารณะ {
ผู้มีอำนาจ [] ค่า ();
-
คลาสสาธารณะ RepeatAnnotationUseOldVersion {
@Authorities({@Authority(role="Admin"),@Authority(role="Manager")})
โมฆะสาธารณะ doSomeThing(){
-
-
ใช้คำอธิบายประกอบอื่นเพื่อจัดเก็บคำอธิบายประกอบที่ซ้ำกัน เมื่อใช้มัน ให้ใช้คำอธิบายประกอบการจัดเก็บข้อมูลเพื่อขยายคำอธิบายประกอบที่ซ้ำกัน
คัดลอกรหัสรหัสดังต่อไปนี้:
@ ทำซ้ำได้ (Authorities.class)
สาธารณะ @interface ผู้มีอำนาจ {
บทบาทสตริง ();
-
หน่วยงาน @interface สาธารณะ {
ผู้มีอำนาจ [] ค่า ();
-
คลาสสาธารณะ RepeatAnnotationUseNewVersion {
@ผู้มีอำนาจ(บทบาท = "ผู้ดูแลระบบ")
@ผู้มีอำนาจ(บทบาท = "ผู้จัดการ")
โมฆะสาธารณะ doSomeThing(){ }
-
ข้อแตกต่างคือเมื่อสร้างอำนาจคำอธิบายประกอบซ้ำ ให้เพิ่ม @Repeatable เพื่อชี้ไปยังอำนาจคำอธิบายประกอบที่เก็บไว้ เมื่อใช้งาน คำอธิบายประกอบอำนาจสามารถนำมาใช้ซ้ำได้โดยตรง จากตัวอย่างข้างต้น เราจะเห็นว่าแนวทางใน Java 8 เหมาะสมกับการคิดแบบเดิมๆ มากกว่า และอ่านง่ายกว่า
3. สรุป
JEP120 มีเนื้อหาไม่มากนัก มันเป็นคุณสมบัติเล็กๆ เพียงเพื่อปรับปรุงความสามารถในการอ่านโค้ด ครั้งนี้ Java 8 ได้ทำการปรับปรุงคำอธิบายประกอบสองครั้ง (JEP 104, JEP120) ฉันเชื่อว่าคำอธิบายประกอบจะถูกใช้บ่อยกว่าที่เคย