في Java ، يتم تقديم التعليقات التوضيحية في Java 5 ويستخدم لوصف معلومات التعريف الخاصة برمز Java. عادة ، لن تؤثر التعليقات التوضيحية بشكل مباشر على تنفيذ الكود ، على الرغم من أنه يمكن استخدام بعض التعليقات التوضيحية للتأثير على تنفيذ الكود.
ما الذي يمكن القيام به مع التعليقات التوضيحية
عادة ما تلعب التعليقات التوضيحية في جافا الأدوار التالية
في
أساسيات التعليقات التوضيحية
يشبه شرح جافا البسيط entity. حيث @ يعني إخبار المترجم أن هذا هو تعليق توضيحي. الكيان هو اسم التعليقات التوضيحية. عادة في ملف ، طريقة الكتابة هي كما يلي
كيان interface العام {
}
عناصر التعليقات التوضيحية
يمكن أن تستخدم تعليقات Java عناصر لتعيين بعض القيم ، والعناصر في التعليقات التوضيحية تشبه السمات أو المعلمات. نموذج رمز لتحديد التعليقات التوضيحية التي تحتوي على عناصر
كيان interface العام {
سلسلة tablename () ؛
}
عينة رمز باستخدام التعليقات التوضيحية التي تحتوي على عناصر
@entity (tablename = "المركبات")
اسم عنصر التعليق التوضيحي أعلاه هو اسم TableName ومجموعة القيمة هي المركبات. التعليقات التوضيحية بدون عناصر لا تتطلب أقواس.
إذا كان التعليق التوضيحي يحتوي على عناصر متعددة ، فإن طريقة الاستخدام هي كما يلي
@entity (tablename = "المركبات" ، primarkekey = "id")
إذا كان للشروح عنصر واحد فقط ، فإننا عادة ما نكتبه هكذا
@insertnew (value = "نعم")
ولكن في هذه الحالة ، إذا كان اسم العنصر هو القيمة وفقط ، يمكننا أيضًا اختصارها ، أي ليست هناك حاجة لملء قيمة اسم العنصر ، فالأثر هو كما يلي
@insertnew ("نعم")
استخدام التعليقات التوضيحية
يمكن استخدام التعليقات التوضيحية لتعديل هذه العناصر في الكود
مثال كامل على الاستخدام هو كما يلي
entitypublic class chore {persistent string string mediiclename = null ؛ Getter Public String getveHiclename () {return this.vehiclename ؛ } public void setVehiclename (aptional queticlename) {this.vehiclename = queticlename ؛ } القائمة العامة AddveHiclenAmetolist (أسماء القائمة) {Optional List LocalNames = names ؛ if (localNames == null) {localNames = new ArrayList () ؛ } localnames.add (getvehiclename ()) ؛ إرجاع الأسماء المحلية ؛ }}التعليقات التوضيحية Java مدمجة
هناك ثلاثة تعليقات مضمنة في Java تستخدم لتوفير تعليمات للمترجم. هم
deprecated
يمكن استخدامها لتمييز الفصول والأساليب والخصائص.
إذا لم تعد العناصر الثلاثة أعلاه تستخدم ، فاستخدم التعليق التوضيحي @DePrecated. إذا كان الرمز يستخدم الفئة أو الطريقة أو خاصية التعليق التوضيحي @DePrecated ، فسوف يحذرك المترجم.
@DePrecated بسيط للغاية للاستخدام ، على النحو التالي: التعليق التوضيحي لفئة تم إهمالها.
deprecatedpublic class myComponent {}عندما نستخدم التعليق التوضيحي @DePrecated ، يوصى باستخدام رمز Javadoc المقابل deprecated بالتزامن معه وشرح سبب إهمال هذه الفئة أو الطريقة أو الممتلكات وما هو البديل.
deprecated/** deprecated هذا الفئة مليئة بالأخطاء. استخدم myNewComponent بدلاً من ذلك.*/الفئة العامة myComponent {}@تجاوز
يتم استخدام شرح Override لتعديل طريقة إعادة كتابة فئة الأصل. إذا كانت الطريقة التي لا تتجاوز الفئة الأصل تستخدم هذا التعليق التوضيحي ، فسيطلب المترجم خطأً.
في الواقع ، لا يعد Overide ضروريًا لتجاوز أساليب الفئة أو الواجهة في فئة فرعية. ومع ذلك ، لا يزال يوصى باستخدام هذا التعليق التوضيحي. في بعض الحالات ، على افتراض أنك تعدل اسم طريقة الفئة الأصل ، فإن طريقة الفئة الفرعية التي تم إعادة كتابةها من قبل لن يتم إعادة كتابة. بدون Overide ، لن تلاحظ طريقة هذه الفئة الفرعية. مع تعديل التعليقات التوضيحية هذا ، سيطالبك المترجم بهذه المعلومات.
أمثلة على استخدام التعليق التوضيحي
الطبقة العامة mysuperclass {public void dothething () {system.out.println ("do the thing") ؛ }} الفئة العامة mysubClass تمتد mysuperclass {Override public void dothething () {system.out.println ("do it بشكل مختلف") ؛ }}suppressWarnings
يتم استخدام suppressWarnings لقمع المترجم من توليد رسائل تحذير.
العناصر التي يمكن تعديلها هي الفئات والأساليب ومعلمات الطريقة والسمات والمتغيرات المحلية
سيناريو الاستخدام: عندما تستدعي الطريقة طريقة تم إهمالها أو تنفذ تحويل نوع غير آمن ، فإن المترجم سيولد تحذيرًا. يمكننا أن نضيف إلى هذه الطريقة
suppressWarnings شرح لقمع تحذيرات توليد المترجمات.
ملاحظة: استخدم التعليق التوضيحي suppresswarnings واعتماد مبدأ القرب. على سبيل المثال ، إذا كانت الطريقة لها تحذير ، نحاول استخدام suppressWarnings للتعليق على هذه الطريقة ، بدلاً من التعليق على الفصل حيث توجد الطريقة. على الرغم من أن كلاهما يمكن أن يمنع المترجم من توليد تحذيرات ، إلا أنه كلما كان النطاق أصغر ، كان النطاق أفضل ، لأن النطاق أكبر ، وهو ما لا يفضي إلى اكتشاف معلومات التحذير من طرق أخرى بموجب هذه الفئة.
مثال على الاستخدام
suppresswarningspublic void methodwithwarning () {}قم بإنشاء التعليقات التوضيحية الخاصة بك
في Java ، يمكننا إنشاء التعليقات التوضيحية الخاصة بنا والشروح والفئات ، ويتم تعريف ملفات الواجهة في ملفنا الخاص. على النحو التالي
interface myannotation {string value () ؛ اسم السلسلة () ؛ int age () ؛ سلسلة [] newNames () ؛}يحدد الرمز أعلاه تعليقًا توضيحيًا يسمى myannotation ، والذي يحتوي على 4 عناصر. مرة أخرى ، يتم استخدام الكلمة الرئيسية interface لإخبار برنامج التحويل البرمجي Java بأن هذا تعليق توضيحي.
إذا نظرت عن كثب ، فستجد أن تعريف عناصر التعليقات التوضيحية يشبه إلى حد كبير طريقة الواجهة. هذه العناصر لها أنواع وأسماء. يمكن أن تكون هذه الأنواع
فيما يلي تعليقات التطبيق المخصصة للتطبيق
myAnnotation (value = "123" ، name = "jakob" ، Age = 37 ، NewNames = {"Jenkov" ، "Peterson"}) الفئة العامة myClass {}لاحظ أننا نحتاج إلى تعيين قيم لجميع عناصر التعليقات التوضيحية ، ولا يمكن لأي شخص مفقود.
القيمة الافتراضية عنصر التعليق
بالنسبة للعناصر في التعليقات التوضيحية ، يمكننا وضع قيم افتراضية لهم ، باستخدام الطريقة
interface myannotation {string value () افتراضي "" ؛ اسم السلسلة () ؛ int age () ؛ سلسلة [] newNames () ؛}في الرمز أعلاه ، قمنا بتعيين القيمة الافتراضية لعنصر القيمة على سلسلة فارغة. عندما نستخدمه ، لا يمكننا تعيين القيمة ، أي دع القيمة تستخدم القيمة الافتراضية للسلسلة الفارغة. استخدم رمز العينة
myAnnotation (name = "jakob" ، Age = 37 ، NewNames = {"Jenkov" ، "Peterson"}) الفئة العامة myClass {}@حفظ
الاحتفاظ به هو شرح يستخدم لتعديل التعليق التوضيحي. باستخدام هذا التعليق التوضيحي ، يمكننا القيام بذلك.
تحكم في ما إذا كانت التعليقات التوضيحية مكتوبة على ملف الفصل للتحكم في ما إذا كانت التعليقات التوضيحية في ملف الفصل مرئيًا في وقت التشغيل
السيطرة بسيطة ، فقط استخدم واحدة من الاستراتيجيات الثلاث التالية.
يشير ConterencePolicy.Source إلى أن التعليق التوضيحي موجود فقط في الكود المصدر ، ولا يوجد ملفات ، ولا يمكن أن يكون مرئيًا أثناء وقت التشغيل. التعليقات التوضيحية المشتركة هي Override ، suppressWarnings.
attreencepolicy.class هذه هي سياسة الاحتفاظ بالتعليقات التوضيحية الافتراضية. بموجب هذه الاستراتيجية ، ستكون التعليقات التوضيحية موجودة مع ملف .class ، ولكن لا يمكن الوصول إليها في وقت التشغيل. عادةً ما يتم استخدام استراتيجية التعليقات التوضيحية هذه للعمل في بعض مستوى Bytecode.
يمكن الوصول إلى attreencepolicy.runtime في وقت التشغيل بموجب هذه السياسة. في كثير من الأحيان ، نفعل شيئًا بالاقتران مع التفكير.
مثال على استخدام @الاحتفاظ
استيراد java.lang.annotation.retention ؛ import java.lang.annotation.retentionpolicy ؛ reation (attreencepolicy.runtime) interface myannotation {string value () افتراضي "؛}@هدف
باستخدام التعليقات التوضيحية target ، يمكننا تعيين عناصر Java يمكن تعديلها عن طريق التعليقات التوضيحية المخصصة. مثال بسيط
استيراد java.lang.annotation.elementtype ؛ import java.lang.annotation.target ؛ target ({elementType.method}) public interface myannotation {string value () ؛}يوضح الرمز أعلاه أن تعليق توضيحي myannotation يمكنه تعديل الطريقة فقط.
يمكن لـ Rarget تحديد قيم المعلمة على النحو التالي
inherited
إذا كنت تريد أن تحتوي فئة الفئة الفرعية على تعليق توضيحي ، فيمكنك استخدام inherited لتعديل هذا التعليق التوضيحي.
java.lang.annotation.inherited@inheritedpublic interface myannotation {} 12@myannotationpublic class mysuperclass {...} 1public class mysubclass يمتد mysuperclass {...}المعنى العام للرمز أعلاه هو
1. استخدم inherited لتعديل التعليق التوضيحي
2. التعليق على mysuperclass باستخدام myannotation
3. تنفيذ صف ميرث mysubclass من mysuperclass
من خلال الخطوات المذكورة أعلاه ، لدى MySubClass أيضًا شرحًا توضيحيًا myannotation.
هذه هي بعض المفاهيم الأساسية حول التعليقات التوضيحية في جافا.
ما سبق هو فرز التعليقات التوضيحية في جافا. سنستمر في إضافة المعلومات ذات الصلة في المستقبل. شكرا لك على دعمك لهذا الموقع!