توفر التعليقات التوضيحية Java بعض المعلومات حول الرمز ، ولكن لا تؤثر بشكل مباشر على محتوى الكود الذي يشرحه. في هذا البرنامج التعليمي ، سوف نتعرف على تعليقات Java ، وكيفية تخصيص التعليقات التوضيحية ، واستخدام التعليقات التوضيحية ، وكيفية تحليل التعليقات التوضيحية من خلال التفكير.
تقدم Java 1.5 التعليقات التوضيحية ، ويستخدم العديد من أطر عمل Java حاليًا التعليقات التوضيحية على نطاق واسع ، مثل السبات وجيرسي و Spring. يتم تضمين التعليقات التوضيحية في البرنامج كبيانات تعريف للبرنامج. يمكن تحليل التعليقات التوضيحية بواسطة بعض أدوات التحليل أو أدوات التجميع. يمكننا أيضًا أن نعلن أن التعليقات التوضيحية لها تأثير أثناء التجميع أو التنفيذ.
قبل استخدام التعليقات التوضيحية ، تمر بيانات مصدر البرنامج فقط من خلال التعليقات التوضيحية Java و Javadoc ، لكن التعليقات التوضيحية توفر أكثر من ذلك بكثير. لا تحتوي التعليقات التوضيحية على بيانات تعريف فحسب ، بل يمكنها أيضًا العمل على تسلسل تنفيذ البرنامج. يمكن لمترجم التعليقات التوضيحية حل أمر تنفيذ البرنامج من خلال التعليق التوضيحي. على سبيل المثال ، في Jersey WebService ، نضيف شرحًا ** مسارًا ** في شكل سلسلة URI إلى الطريقة ، ثم أثناء تشغيل البرنامج ، سيحدد مترجم جيرسر أن الطريقة ستستدعي URI المحددة.
إنشاء التعليقات التوضيحية Java مخصصة
يشبه إنشاء تعليق توضيحي مخصص إنشاء واجهة ، ولكن يجب أن تبدأ الكلمة الرئيسية للواجهة المشروحة برمز @. يمكننا إعلان طرق التعليق التوضيحي. دعونا أولاً نلقي نظرة على مثال التعليقات التوضيحية ، وبعد ذلك سنناقش بعض خصائصه.
حزمة com.journaldev.annotations ؛ استيراد java.lang.annotation.documented ؛ import java.lang.annotation.elementType ؛ import java.lang.annotation.inherited ؛ import java.lang.annotation.retention ؛ import java.lang.annotation.retentionpolicy ؛ @documented@target (elementType.method)@الموروثة@attreence (attreentionpolicy.runtime) public interface methodInfo {String uplity () الافتراضي 'pankaj' ؛ تاريخ السلسلة () ؛ int revision () افتراضي 1 ؛ تعليقات السلسلة () ؛} لا يمكن أن تحمل طريقة التعليقات التوضيحية المعلمات ؛
تقتصر أنواع قيمة الإرجاع لطريقة التعليقات على: الأنواع الأساسية أو السلسلة أو التعداد أو التعليق التوضيحي أو المصفوفات من هذه الأنواع ؛
يمكن أن يكون لأساليب التعليقات التوضيحية قيمًا افتراضية ؛
يمكن أن تحتوي التعليقات التوضيحية نفسها على تعليقات توبية ، والتي تُستخدم لتوضيح التعليقات التوضيحية الأخرى.
فيما يلي أربعة أنواع من تعليقات التعليقات التوضيحية :
1. documented - يشير إلى أنه يمكن توثيق العناصر التي لديها هذا التعليق التوضيحي بواسطة أدوات مثل Javadoc. يجب استخدام هذا النوع للتعليق على هذه الأنواع التي تؤثر على إعلان العميل باستخدام العناصر المشروحة. إذا تم شرح إعلان باستخدام موثقة ، فسيتم استخدام هذا النوع من التعليقات التوضيحية المشروح كواجهة برمجة تطبيقات عامة لعضو البرنامج المشروح.
2. @Target - يشير إلى نطاق عناصر البرنامج التي يمكن أن تعرضها التعليقات التوضيحية من هذا النوع. يمكن أن تكون قيم التعليقات التوضيحية هذا من النوع ، والطريقة ، والمُنشئ ، والحقل ، وما إلى ذلك. إذا لم يظهر التعليق التوضيحي المستهدف ، يمكن تطبيق التعليقات التوضيحية المحددة على أي عنصر من عناصر البرنامج.
3. inherited - يشير إلى أن نوع التعليقات التوضيحية ورث تلقائيًا. إذا قام المستخدم بتشويه نوع التعليق التوضيحي هذا في الفئة الحالية ولا يحتوي إعلان الفئة الحالية على نوع التعليق التوضيحي هذا ، فسيقوم أيضًا بالاستعلام تلقائيًا ما إذا كانت الفئة الأم للفئة الحالية لديها شرح ميتا موروثة. سيتم تكرار هذا الإجراء لمعرفة أنه تم العثور على نوع التعليقات التوضيحية ، أو يتم الاستعلام عن فئة الأصل في المستوى العلوي.
4.@الاستبقاء - يحدد طول الوقت الذي يتم فيه الاحتفاظ بالتعليقات التوضيحية. قيم الاحتفاظ بالسياسة هي المصدر والفئة ووقت التشغيل.
جافا التعليقات التوضيحية المدمجة
يوفر Java ثلاثة تعليقات شرحية مدمجة.
1. Override - عندما نريد إعادة كتابة الطريقة في الفصل الأصل ، نحتاج إلى استخدام هذا التعليق التوضيحي لإبلاغ المترجم الذي نريد إعادة كتابة هذه الطريقة. وبهذه الطريقة ، سيطالب برنامج التحويل البرمجي برسالة خطأ عند إزالة الطريقة في الفئة الأصل أو حدوث تغييرات.
2. deprecated - عندما نريد أن يعرف المترجم أن الطريقة لا ينصح بها ، يجب أن نستخدم هذا التعليق التوضيحي. توصي Java بهذا التعليق التوضيحي في Javadoc ، يجب أن نقدم سبب عدم التوصية بهذه الطريقة والأساليب البديلة.
3. suppressWarnings - هذا فقط لإخبار المترجم بتجاهل رسائل تحذير محددة ، مثل استخدام أنواع البيانات الأصلية في الأدوية الجيلية. سياسة الاستبقاء الخاصة بها هي المصدر (ملاحظة المترجم: صالحة في الملف المصدر) ويتم تجاهلها بواسطة المترجم.
دعنا نلقي نظرة على مثال على التعليقات التوضيحية المدمجة في جافا ، راجع التعليقات التوضيحية المخصصة المذكورة أعلاه.
حزمة com.journaldev.annotations ؛ استيراد java.io.filenotfoundException ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛ include incluesexample {public static void main (string [] args) {} @override @methodInfo (uptor = 'pankaj' ، comments = 'main method' ، date = 'Nov 17 2012' ، revision = 1) public string toString () void oldmethod () {system.out.println ('الطريقة القديمة ، لا تستخدمها. New ArrayList () ؛ L.Add ('ABC') ؛ oldmethod () ؛}}أعتقد أن هذا المثال يمكن أن يكون محسوسًا ذاتيًا ويمكن عرضه في سيناريوهات مختلفة.
تحليل التعليقات التوضيحية Java
سوف نستخدم تقنية الانعكاس لتحليل شرح فصول جافا. بعد ذلك ، يجب تعيين entrentionpolicy التعليقات التوضيحية على وقت التشغيل وإلا فلن تتوفر معلومات التعليقات التوضيحية لفئة Java أثناء التنفيذ ، لذلك لا يمكننا الحصول على أي بيانات تتعلق بالتعليقات التوضيحية منه.
حزمة com.journaldev.annotations ؛ استيراد java.lang.annotation.annotation ؛ استيراد java.lang.reflect.method ؛ include includy public {public static void main (string [] args) {try {for (method method: encontationParsing.class .getClassLoader () .LoadClass (('com.journaldev.annotations.annotationexample) .getMethods () {// (method.isannotationpresent (com.journaldev.annotations.methodinfo.class)) {try {// تكرار جميع التعليقات التوضيحية المتاحة في طريقة (annotation anno: method.getDeclaredAntations ()) } methodInfo methodanno = method.getAnnotation (methodInfo.class) ؛ if (methodanno.revision () == 1) {system.out.println ('method with revision no 1 ='+ method) ؛ }} catch (throwable ex) {ex.printStackTrace () ؛ }}}} catch (SecurityException | classNotFoundException e) {E.PrintStackTrace () ؛ }}} سيؤدي تشغيل البرنامج أعلاه إلى إخراج:
التعليق التوضيحي في الطريقة 'العامة java.lang.string com.journaldev.annotations.annotationexample.toString ()': @com.journaldev.annotations.methodinfo (المؤلف = pankaj ، المراجعة = 1 ، التعليقات = الطريقة الرئيسية = 17 نوفمبر 2012) com.journaldev.annotations.annotationesexample.toString () التعليق التوضيحي في الطريقة 'public static void com.journaldev.annotations.annotationexample.oldmethod ()': @java.lang.deprecated () anotation in 'public static static com.journaldev.annotation. @com.journaldev.annotations.methodinfo (مؤلف = pankaj ، المراجعة = 1 ، التعليقات = الطريقة المنهكة ، التاريخ = 17 نوفمبر 2012) طريقة مع المراجعة رقم 1 = الفراغ العام الثابت com.journaldev.annotations.annotationexample.oldmethod () enoation in method 'public com java.io.filenotfoundException ': @com.journaldev.annotations.methodinfo (المؤلف = pankaj ، المراجعة = 10 ، التعليقات = الطريقة الرئيسية ، التاريخ = 17 نوفمبر 2012)
هذا كل شيء عن هذا البرنامج التعليمي ، ونأمل أن تتعلم شيئًا منه.