إذا لم تكن هناك طرق ومهام لقراءة التعليقات التوضيحية ، فلن تكون التعليقات التوضيحية أكثر فائدة من التعليقات التوضيحية. يتم إنشاء جزء مهم من عملية استخدام التعليقات التوضيحية باستخدام معالج التعليقات التوضيحية. يمتد JAVASE5 واجهة برمجة تطبيقات آلية الانعكاس لمساعدة المبرمجين بسرعة على بناء معالجات التعليقات التوضيحية المخصصة.
مكتبة فئة المعالج المشروح (java.lang.reflect.annotatedelement):
تستخدم Java واجهة التعليقات التوضيحية لتمثيل التعليق التوضيحي أمام عنصر البرنامج ، وهو الواجهة الأصل لجميع أنواع التعليقات. بالإضافة إلى ذلك ، أضافت Java واجهة مشروح تحت حزمة java.lang.reflect. تمثل هذه الواجهة عناصر البرنامج التي يمكن أن تقبل التعليقات التوضيحية في البرنامج. تحتوي الواجهة بشكل أساسي على فئات التنفيذ التالية:
الفصل: تعريف الفئة
مُنشئ: تعريف المنشئ
الحقل: تعريف متغير العضو التراكمي
الطريقة: تعريف طريقة الفصل
الحزمة: تعريف حزمة الفصل
تحتوي حزمة java.lang.reflect بشكل أساسي على بعض فئات الأدوات التي تنفذ وظائف الانعكاس. في الواقع ، توسع جميع واجهات برمجة تطبيقات الانعكاس التي توفرها حزمة java.lang.reflect القدرة على قراءة معلومات التعليق التوضيحي لوقت التشغيل. عندما يتم تعريف نوع التعليق التوضيحي على أنه شرح توضيحي في وقت التشغيل ، يمكن أن يكون التعليق التوضيحي مرئيًا فقط في وقت التشغيل ، وسيتم حفظ التعليق التوضيحي في ملف الفصل عند تحميل ملف الفصل بواسطة الجهاز الظاهري.
واجهة المشروح هي الواجهة الأصل لجميع عناصر البرنامج (الفئة ، الطريقة والمؤسسة). لذلك ، بعد حصول البرنامج على كائن مشروح لفئة معينة من خلال التفكير ، يمكن للبرنامج استدعاء الطرق الأربع التالية للكائن للوصول إلى معلومات التعليقات التوضيحية:
الطريقة 1: <Textendsannotation> tgetAnnotation (الفئة <T> التعليقات التوضيحية): إرجاع تعليق توضيحي للنوع المحدد الموجود على عنصر البرنامج. إذا كان التعليق التوضيحي من النوع غير موجود ، فالتراجع الخالي.
الطريقة 2: التعليق التوضيحي [] getAnnotations (): إرجاع جميع التعليقات التوضيحية الموجودة على عنصر البرنامج.
الطريقة 3: BooleanisannotationPresent (الفئة <؟ EndendensAntation> annotationClass): يحدد ما إذا كان عنصر البرنامج يحتوي على تعليقات من النوع المحدد. إذا كان موجودًا ، فسيعود صحيحًا ، وإلا فإنه سيعود خطأ.
الطريقة 4: التعليق التوضيحي [] getDeclaredannotations (): إرجاع جميع التعليقات الموجودة مباشرة على هذا العنصر. على عكس الطرق الأخرى في هذه الواجهة ، تتجاهل هذه الطريقة التعليقات التوضيحية الموروثة. (إذا لم يكن هناك تعليق مباشرة على هذا العنصر ، يتم إرجاع مجموعة من الطول صفر.) يمكن للمتصل بالطريقة تعديل الصفيف الذي تم إرجاعه في الإرادة ؛ لن يكون لهذا أي تأثير على الصفيف الذي تم إرجاعه من قبل المتصلين الآخرين.
معالج شرح بسيط:
/*************: */ @target (elementType.Field) Repentine (attreentionpolicy.runtime) documentedpublic @interface fruitcolor {/** * color enum * author peida * */public enum color {bule ، red ، green} ؛ Author peida**/ @target (elementType.field) reention (attreentionpolicy.runtime) documentedpublic @interface fruitprovider {/*** رقم المورد* return*/public int id () default -1 ؛/** "" ؛ "؛ 89 ، طريق يانان ، سيتي شيان ، مقاطعة شانشي ") سلسلة خاصة AppleProvider ؛ public void setappleColor (سلسلة applecolor) {this.appleColor = Applecolor ؛} string public ؛ getapplename () {return applename ؛} public void setAppleProvider (String AppleProvider) {this.appleProvider = AppleProvider ؛} السلسلة العامة getAppleProvider () المعالج *****************************/فئة عامة fruitinfoutil {public static void getfruitinfo (class <؟> clazz) {String strfruitname = "fruit name:" ؛ : الحقول) {if (field.isannotationpresent (fruitname.class)) {fruitname fruitname = (fruitname) field.getannotation (fruitname.class) ؛ strfruitname = strfruitname+fruitname.value () ؛ system.out.println (strfruitname) ؛ if (field.isannotationpresent (fruitcolor.class)) {fruitcolor fruitcolor = (fruitcolor) field.getannotation (fruitcolor.class) ؛ strfruitcolor = strfruitcolor+fruitcolor.fruitcolor (). إذا (field.isannotationpresent (fruitprovider.class)) {fruprovider fruitprovider = (fruprovider) field.getAnnotation (fruitprovider.class) ؛ strfruitprovicer = "رقم المورد:"+fruitprovider.id () اسم المورد: "+fruitprovider.address () ؛ system.out.println (strfruitprovicer) ؛}}}}/***************** {fruitinfoutil.getfruitinfo (Apple.class) ؛}} ======================================================================== مبنى هونغفوجي ، رقم 89 ، طريق يانان ، مدينة شيان ، مقاطعة شانشيلقد قرأت بشكل أساسي نقاط المعرفة الأساسية لشروط جافا (انظر الخريطة أدناه). في المقالة التالية ، نقوم بتصميم إطار ORM بسيط يعتمد على التعليقات التوضيحية لتطبيق بشكل شامل وتعميق فهم وتطبيق نقاط المعرفة المختلفة للشروح.
لخص
ما سبق هو كل شيء عن الأمثلة البسيطة لمعالج جافا شرح التعليق في هذه المقالة ، وآمل أن يكون مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!