مقدمة
في الوقت الحاضر ، تستخدم المزيد والمزيد من التصميمات المعمارية التعليقات التوضيحية ، مثل Spring3.0 و Struts2 والأطر الأخرى. دعونا نلقي نظرة أولاً على تعريف التعليق التوضيحي. فيما يلي رمز يستخدم JDK 5 annotation @Target:
target ({elementType.method})@entry (attreentionpolicy.runtime)@الموروث@documentedpublic@interface asynlog {}1. استخدام @target
java.lang.annotation.target
تستخدم لتعيين نطاق استخدام التعليق التوضيحي
java.lang.annotation.elementType
الهدف يحدد نطاقات التعليقات التوضيحية لاستخدام مجموعات التعداد
2. استخدام ElementType
| احصل على القيمة | نطاق التعليقات التوضيحية |
| طريقة | يمكن استخدامها في الطرق |
| يكتب | يمكن استخدامها في الفصول أو الواجهات |
| التعليق التوضيحي | يمكن استخدامها على أنواع التعليقات التوضيحية (الأنواع المعدلة بواسطة interface) |
| مُنشئ | يمكن استخدامه في طرق البناء |
| مجال | يمكن استخدامها في المجال |
| local_variable | يمكن استخدامها على المتغيرات المحلية |
| طَرد | تستخدم لتسجيل معلومات حزمة ملفات Java |
| المعلمة | يمكن استخدامها على المعلمات |
هنا هو تسليط الضوء: elementType. طَرد. لا يتم استخدامه في الفئات العامة ، ولكن في حزمة الملفات الثابتة info.java. يجب التأكيد هنا على أن التسمية يجب أن تكون "حزمة". نظرًا لأن package-info.java ليس فئة قانونية ، فإن استخدام Eclipse لإنشاء فئة سيؤدي إلى أن يكون غير قانوني ، لذلك تحتاج إلى إنشاء حزمة info.java في طريق إنشاء ملف.
على سبيل المثال ، يمكن استخدام حزمة النطاق لتحديد:
target ({elementType.package ، elementType.Method})@entry (enthinationpolicy.runtime)@الموروث@documentedpublic@interface asynlog {}ثم ، قم بإنشاء الملف: package-info.java ، مع المحتوى على النحو التالي:
نسخة الكود كما يلي:
asynlog
حزمة org.my.commons.logs.annotation ؛
Keynote: لا يمكن استخدام التعليقات التوضيحية إلا في النطاق الذي تم تعيينه بواسطة ElementType ، وإلا سيتم تجميع خطأ. على سبيل المثال: يحتوي النطاق فقط على elementType.method ، مما يعني أنه لا يمكن استخدام التعليقات التوضيحية إلا في طريقة الفصل ، وسيتم تجميع الاستثناء خارج نطاق الاستخدام.