คำนำ
ในปัจจุบันการออกแบบสถาปัตยกรรมที่มากขึ้นเรื่อย ๆ กำลังใช้คำอธิบายประกอบเช่น Spring3.0, Struts2 และเฟรมเวิร์กอื่น ๆ ก่อนอื่นให้ดูคำจำกัดความของคำอธิบายประกอบ ต่อไปนี้เป็นรหัสที่ใช้คำอธิบายประกอบ JDK 5 @Target:
@Target ({ElementType.Method})@retention (RetentionPolicy.runtime)@สืบทอด@documentedPublic @interface asynlog {}1. การใช้งาน @Target
java.lang.annotation.target
ใช้ในการตั้งค่าขอบเขตของการใช้คำอธิบายประกอบ
java.lang.annotation.elementtype
เป้าหมายระบุขอบเขตคำอธิบายประกอบเพื่อใช้คอลเลกชันการแจงนับ
2. การใช้งาน ElementType
| รับค่า | ขอบเขตคำอธิบายประกอบ |
| วิธี | สามารถใช้ในวิธีการ |
| พิมพ์ | สามารถใช้กับคลาสหรืออินเทอร์เฟซ |
| คำอธิบายประกอบ _type | สามารถใช้กับประเภทคำอธิบายประกอบ (ประเภทที่แก้ไขโดย @Interface) |
| ตัวสร้าง | สามารถใช้ในวิธีการก่อสร้าง |
| สนาม | สามารถใช้กับโดเมน |
| local_variable | สามารถใช้กับตัวแปรท้องถิ่น |
| บรรจุุภัณฑ์ | ใช้เพื่อบันทึกข้อมูลแพ็คเกจของไฟล์ Java |
| พารามิเตอร์ | สามารถใช้กับพารามิเตอร์ |
นี่คือไฮไลต์: ElementType บรรจุุภัณฑ์. มันไม่ได้ใช้ในคลาสทั่วไป แต่ในไฟล์คงที่ package-info.java ควรเน้นที่นี่ว่าการตั้งชื่อจะต้องเป็น "package-info" เนื่องจาก Package-info.java ไม่ใช่คลาสทางกฎหมายการใช้ Eclipse เพื่อสร้างคลาสจะแจ้งให้ทราบว่ามันผิดกฎหมายดังนั้นคุณต้องสร้าง package-info.java ในการสร้างไฟล์
ตัวอย่างเช่นแพ็คเกจช่วงสามารถใช้เพื่อกำหนด:
@Target ({ElementType.Package, ElementType.method})@retention (retentionPolicy.runtime)@สืบทอด@documentedPublic @interface asynlog {}จากนั้นสร้างไฟล์: package-info.java ด้วยเนื้อหาดังนี้:
การคัดลอกรหัสมีดังนี้:
@asynlog
แพ็คเกจ org.my.commons.logs.annotation;
คำปราศรัย: คำอธิบายประกอบสามารถใช้ภายในช่วงที่กำหนดโดย ElementType เท่านั้นมิฉะนั้นจะมีการรวบรวมข้อผิดพลาด ตัวอย่างเช่น: ขอบเขตมีเพียงองค์ประกอบของ ElementType.method ซึ่งหมายความว่าสามารถใช้คำอธิบายประกอบได้ในวิธีการคลาสเท่านั้นและข้อยกเว้นจะถูกรวบรวมนอกขอบเขตการใช้งาน