شروح جافا بسيطة
لا يوجد سوى ثلاثة أنواع بسيطة من التعليقات التوضيحية التي يوفرها JDK5، وتُستخدم هذه الأنواع الثلاثة لمنع الأخطاء أو تقديم التذكيرات، وهي:
1. تجاوز
2.مستنكر
3. قمع التحذيرات
من المهم ملاحظة أن JDK5 (مصطلح آخر، Tiger) لا يحتوي في الواقع على العديد من التعليقات التوضيحية المضمنة؛ وبدلاً من ذلك، فهو يسمح لـ Java الأساسية بدعم قدرة ميزات التعليقات التوضيحية تحديد وظائف البيانات التعريفية يحتاج إلى كتابة أنواع التعليقات التوضيحية المخصصة للمبرمج، وقد كتبت معايير JSR الأخرى أيضًا سلسلة من أنواع التعليقات التوضيحية القياسية. فيما يلي أمثلة لشرح هذه التعليقات التوضيحية الثلاثة البسيطة بعمق.
تجاوز التعليق التوضيحي
يشير التعليق التوضيحي "التجاوز" إلى أن الطريقة المشروحة تحتاج إلى تجاوز الطريقة الموجودة في الفئة الفائقة.
إذا كانت الطريقة تستخدم هذا التعليق التوضيحي ولكنها لا تتجاوز الطريقة الموجودة في الفئة الفائقة (على سبيل المثال، الكتابة بالأحرف الكبيرة خاطئة، أو المعلمات خاطئة، أو تم تعريف الطريقة بواسطة الفئة الفرعية نفسها)، فسيقوم المترجم بإنشاء خطأ.
(ملاحظة: لا يمكن استخدام تجاوز التعليقات التوضيحية في JRE5 عند تنفيذ الأساليب في الواجهات. JRE6 يسمح بذلك. في كثير من الأحيان سوف يقوم JRE5 بالإبلاغ عن هذا الخطأ).
يوضح المثال 1 التعليقات التوضيحية المهيمنة:
مثال شرح جافا 1:
انسخ رمز الكود كما يلي:
الطبقة العامة Test_Override {
@تجاوز
سلسلة عامة إلى سلسلة () {
إرجاع super.toString() + "اختبر باستخدام التعليق التوضيحي "التجاوز""؛
}
}
ماذا يحدث إذا كان اسم الطريقة مكتوبًا بشكل خاطئ؟ على سبيل المثال، إذا قمت بإعادة تسمية طريقة toString إلى "tostring" (جميعها بأحرف صغيرة)، فسوف تحصل على رسالة خطأ مشابهة لما يلي عند الترجمة:
انسخ رمز الكود كما يلي:
تجميع ملف مصدر واحد إلى D:tempNew Folder (2)
TestJavaApplication1buildclasses
D: tempNew Folder (2)TestJavaApplication1srctest
myannotationTest_Override.java:24: لا يتم تجاوز الطريقة
طريقة من فئتها الفائقة
@تجاوز
خطأ واحد
فشل البناء (الوقت الإجمالي: 0 ثانية)
بالطبع، سيقوم Eclipse بالإبلاغ مباشرة عن الصليب الأحمر. الآن بعد أن أصبحت IDEs سهلة الاستخدام للغاية، لا ينبغي للمبتدئين العبث بسطر أوامر JDK.
تعليق توضيحي مهمل
يشير هذا التعليق التوضيحي إلى أن المترجم يجب أن يعرض رسالة تحذير إذا قام البرنامج باستدعاء عنصر مهمل (مهمل، قديم، قديم) يوضح المثال 2 كيفية استخدام التعليق التوضيحي المهمل.
مثال شرح جافا 2
أولاً، قم بإنشاء فئة ووضع علامة على الطريقة على أنها مهملة مثل هذا:
انسخ رمز الكود كما يلي:
الطبقة العامة Test_Deprecated {
@مهمل
الفراغ العام يفعل شيئا () {
System.out.println("اختبار باستخدام التعليق التوضيحي المهمل: 'مهمل'");
}
}
بعد ذلك، حاول استدعاء هذا الأسلوب من فئة أخرى:
انسخ رمز الكود كما يلي:
التعليقات التوضيحية للطبقة العامة {
public static void main(String arg[]) يطرح الاستثناء {
تعليقات توضيحية جديدة () ؛
}
التعليقات التوضيحية العامة () {
Test_Deprecated t2=new Test_Deprecated();
t2.doSomething();
}
تم الإعلان عن طريقة doSomething() في هذا المثال كطريقة مهملة، لذلك، لا ينبغي استدعاء هذه الطريقة في الظروف العادية. لن تكون هناك رسالة تحذير عند ترجمة ملف Test_Deprecated.java، ولكن عند ترجمة TestAnnotations.java سيتم تقديم رسالة تحذير مشابهة لهذه (سوف يحذر Eclipse):
انسخ رمز الكود كما يلي:
تجميع ملف مصدر واحد إلى D:tempNew Folder
(2) اختبار JavaApplication1buildclasses
د: مجلد جديد مؤقت
(2)اختبارJavaApplication1srcاختبارالتعليق التوضيحي الميان
TestAnnotations.java:27:
تحذير: [الإهمال] doSomething() in
لقد تم إهمال test.myannotation.Test_Deprecated
t2.doSomething();
1 تحذير
منع التعليقات التوضيحية
يخبر هذا التعليق التوضيحي المترجم أنه يجب منع رسائل التحذير الخاصة بالعنصر المشروح وجميع العناصر الفرعية. على سبيل المثال، لنفترض أنك تستخدم التعليق التوضيحي Suppresswarnings في فئة ما منع تحذير إذا استخدمت التعليق التوضيحي Suppresswarnings على إحدى الطرق لمنع تحذير آخر، فسيتم منع كلا التحذيرين على مستوى الطريقة.
مثال شرح جافا 3:
انسخ رمز الكود كما يلي:
التعليقات التوضيحية للطبقة العامة {
public static void main(String arg[]) يطرح الاستثناء {
new TestAnnotations().doSomeTestNow();
}
@SuppressWarnings({"الإهمال"})
الفراغ العام doSomeTestNow() {
Test_Deprecated t2 = new Test_Deprecated();
t2.doSomething();
}
}
في هذا المثال، يتم استخدام @SuppressWarnings لمنع رسالة تحذير الإهمال الموضحة في المثال 2. نظرًا لأنه تم منع هذا النوع من التحذير لهذه الطريقة، فلن ترى تحذير "الإهمال" بعد الآن.
ملحوظة: من الأفضل استخدام هذا التعليق التوضيحي على العنصر الأعمق، لذلك، إذا كنت تريد فقط منع تحذير على طريقة معينة، فيجب عليك التعليق التوضيحي على الطريقة بدلاً من استخدام التعليق التوضيحي في الفصل.
التعليقات التوضيحية (نوع التعليقات التوضيحية لـ Java)
التعليقات التوضيحية، والتي تسمى في الواقع التعليقات التوضيحية، تشمل أربعة أنواع هي:
1. الهدف
2.الاحتفاظ
3. موثقة
4. موروثة
شرح الهدف
يشير التعليق التوضيحي الهدف إلى العنصر الهدف الذي ينطبق عليه نوع التعليق التوضيحي، ويحتوي على قيم نوع التعداد التالية:
1.@Target(ElementType.TYPE)--يمكن تطبيقه على عناصر من أي فئة
2.@Target(ElementType.FIELD) - ينطبق فقط على الحقول أو الخصائص
3.@Target(ElementType.METHOD)--ينطبق فقط على التعليقات التوضيحية للطريقة
4.@Target(ElementType.PARAMETER) - ينطبق فقط على معلمات الطريقة
5.@Target(ElementType.CONSTRUCTOR)--ينطبق فقط على المنشئين
6.@Target(ElementType.LOCAL_VARIABLE)--ينطبق فقط على المتغيرات المحلية
7.@Target(ElementType.ANNOTATION_TYPE) —— يشير إلى أن النوع المعلن نفسه هو نوع تعليق توضيحي
يوضح المثال 4 التعليق التوضيحي للهدف:
مثال شرح جافا 4
أولاً، يتم تعريف نوع التعليق التوضيحي المسمى Test_Target، مع التعليق التوضيحي @Target، كما هو موضح أدناه:
انسخ رمز الكود كما يلي:
@Target(ElementType.METHOD)
@interface العامة Test_Target {
السلسلة العامة doTestTarget();
}
بعد ذلك، قم بإنشاء فصل سيتم شرحه باستخدام Test_Target:
انسخ رمز الكود كما يلي:
التعليقات التوضيحية للطبقة العامة {
public static void main(String arg[]) {
new TestAnnotations().doTestTarget();
}
// استخدم التعليقات التوضيحية على الطرق، حسنًا.
// لا يمكن أن يكون هناك فواصل أسطر في المنتصف، سطرين، وما إلى ذلك. تتجاهل Java فواصل الأسطر الزائدة.
@Test_Target(doTestTarget="مرحبا بالعالم!")
الفراغ العام doTestTarget () {
System.out.printf("اختبار الشرح المستهدف");
}
}
يشير التعليق التوضيحي @Target(ElementType.METHOD) إلى أنه لا يمكن استخدام نوع التعليق التوضيحي إلا للتعليق على الطرق إذا قمت بتجميع هذا الرمز، فلن يتم عرض أي رسالة تحذير، ومع ذلك، ماذا سيحدث إذا تم الإعلان عن هذا التعليق التوضيحي على متغير سلسلة؟ ماذا؟
انسخ رمز الكود كما يلي:
التعليقات التوضيحية للطبقة العامة {
// هذا أسلوب خاطئ، ولن ينجح التجميع لأن التعليق التوضيحي في المستوى الخطأ.
// تشير التعليقات التوضيحية إلى أنه يمكن التعليق على الطرق فقط، ولا يمكن استخدامها للتعليق على الخصائص.
@Test_Target(doTestTarget="مرحبا بالعالم!")
سلسلة خاصة؛
public static void main(String arg[]) {
new TestAnnotations().doTestTarget();
}
الفراغ العام doTestTarget () {
System.out.printf("اختبار الشرح المستهدف");
}
}
التغيير الوحيد هو أن إعلان التعليق التوضيحي ينتقل من مستوى الطريقة إلى مستوى الحقل، وهذا غير صحيح لأنك حددت التعليق التوضيحي @Test_Target الذي ينطبق فقط على مستوى الطريقة، إذا حاولت ترجمة هذه الفئة، فقد تحصل على خطأ. رسالة مثل هذا:
انسخ رمز الكود كما يلي:
"TestAnnotations.java":
D:R_AND_DTestAnnotationsrctestmyannotation
TestAnnotations.java:16:
نوع التعليق التوضيحي لا ينطبق على هذا النوع من الإعلان في السطر
16، العمود 0
@Test_Target(doTestTarget="مرحبا بالعالم!")
^
خطأ في تجميع جافاك