1. نظرة عامة
يمكن تعريف التعليقات التوضيحية على الأساليب.
التعليقات التوضيحية شائعة الاستخدام:
Override: يعني طريقة لإعادة الطبقة الوالدة ،
يمكن أن تحدد هذا الفئة الأصل أيضًا. طريقة فئة الأصل التي يتم الكتابة عليها.
suppressWarnings ("إهمال"): إلغاء تحذير المترجم (على سبيل المثال ، الطريقة التي تستخدمها عفا عليها الزمن)
deprecated: يتم وضع هذا البيان أيضًا في الجزء العلوي من الطريقة ، مما يشير إلى أن هذه الطريقة عفا عليها الزمن أو تستخدم في الفصل
نسخة الكود كما يلي:
استيراد java.util.arraylist ؛
استيراد java.util.list ؛
شرح الفئة العامة {
/*
* بالنسبة للمجموعات ، إذا لم يتم تحديد نوع تخزين ، فسيكون هناك تحذير أمني.
* إذا كنت لا ترغب في المطالبة بتحذير أمني ، فأضف suppressWarnings (المعلمة) إلى الفصل أو الطريقة.
*/
suppressWarnings ("غير محدد")
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
قائمة قائمة = ArrayList () جديد ؛
}
}
2. التعليقات التوضيحية المخصصة
1. التنسيق
أذونات interface اسم التعليق التوضيحي {}
خطوة:
حدد فئة التعليقات التوضيحية ---> تحديد فئة فئة شرح التطبيق ---> الفئة التي تعكس فئة فئة شرح التطبيق (يمكن تعريف هذه الفئة بشكل منفصل أو اختبارها في فئة شرح التطبيق)
نسخة الكود كما يلي:
استيراد java.lang.annotation.Reentering ؛
Importjava.lang.annotation.ReetentionPolicy ؛
// حدد هذا التعليق التوضيحي ليتم الاحتفاظ به في رمز bytecode
@الاحتفاظ (attreentionpolicy.runtime)
public interface myannotation {
}
myannotation
// فئة التعليقات التوضيحية المحددة للتطبيق
الطبقة العامة ApplyMyannotation {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
if (applyMyAnnotation.class.isannotationpresent (myannotation.class)) {// تحديد ما إذا كانت هناك فئة شرح محددة في هذه الفئة
التعليق التوضيحي myannotation = (myannotation) applicmannotation.class
.getAnnotation (myannotation.class) ؛
system.out.println (التعليق التوضيحي) ؛
}
}
}
2. دورة الإعلان
التنسيق: على سبيل المثال: @الاحتفاظ (attreentionpolicy.class)
تحديد دورات على فئة التعليقات التوضيحية المخصصة ، @نوع المعلمة) نوع المعلمة هو الاحتفاظ بسيليكي
attreencepolicy.class: في ملف الفصل ، لا يحتفظ الجهاز الظاهري بالشروح أثناء وقت التشغيل
attreencepolicy.runtime: في ملف الفصل ، يتم الاحتفاظ بالتعليقات الافتراضية أثناء وقت التشغيل.
attreencepolicy.source: على الملف المصدر ، تجاهل التعليق التوضيحي
القمامة والتجاوز هي الاحتفاظ policy.source ،
تم إهماله في attreencepolicy.runtime.
الافتراضي هو الاحتفاظ بسيليسي.
3. حدد الهدف
التنسيق: على سبيل المثال: MethodTarget (elementType.method)
ما يمكن أن يتم شرح الأعضاء من خلال التعليق التوضيحي المحدد. إذا لم يتم الإعلان عن هذا التعليق ، فيمكن وضعه على أي عنصر البرنامج.
يمكن أن يكون الحزم والواجهات والمعلمات والأساليب والمتغيرات المحلية والحقول وما إلى ذلك.
نسخة الكود كما يلي:
// حدد هذا التعليق التوضيحي ليتم الاحتفاظ به في رمز bytecode
@الاحتفاظ (attreentionpolicy.runtime)
target ({elementType.method ، elementType.type}) // يمكن تعريفه على الأساليب والفئات لتمثيل الأنواع
public interface myannotation {
}
myannotation
// فئة التعليقات التوضيحية المحددة للتطبيق
الطبقة العامة ApplyMyannotation {
@myannotation // تعريف على الطريقة
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
if (applyMyAnnotation.class.isannotationpresent (myannotation.class)) {// تحديد ما إذا كانت هناك فئة شرح محددة في هذه الفئة
التعليق التوضيحي myannotation = (myannotation) applicmannotation.class
.getAnnotation (myannotation.class) ؛
system.out.println (التعليق التوضيحي) ؛
}
}
}
3. أضف سمات إلى التعليق التوضيحي
1. اكتب
يمكن أن تكون إعدادات السمة من التعليقات التوضيحية: 8 أنواع البيانات الأساسية ، السلسلة ، التعداد ، التعليقات التوضيحية ، الفئة ، أنواع الصفيف ،
2. انتبه
إذا كانت هناك سمة واحدة فقط في التعليق التوضيحي أو يجب تعيين سمة واحدة فقط ، فيمكن كتابتها مباشرة عند استدعاءها دون تحديد اسم السمة.
عندما تكون السمة المشروحة نوعًا صفيفًا ويتم تعيين قيمة واحدة فقط عند التعيين ، يمكن حذف {}.
3. مثال
3.1.attribute type (سلسلة)
نسخة الكود كما يلي:
استيراد java.lang.annotation.elementType ؛
استيراد java.lang.annotation.Reentering ؛
استيراد java.lang.annotation.RetentionPolicy ؛
استيراد java.lang.annotation.*؛
// حدد هذا التعليق التوضيحي ليتم الاحتفاظ به في رمز bytecode
@الاحتفاظ (attreentionpolicy.runtime)
public interface myannotation {
قيمة السلسلة () ؛
Color Color () الافتراضي "الأحمر" ؛ // اضبط القيمة الافتراضية "Red"
}
MyAnnotation ("Java")
الطبقة العامة ApplyMyannotation {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
/**
* هذا هو الحصول على التعليقات التوضيحية على الفصل ، ويمكنك أيضًا الحصول على التعليقات التوضيحية على الطريقة.
*/
if (applyMyAnnotation.class.isannotationpresent (myannotation.class)) {// تحديد ما إذا كانت هناك فئة شرح محددة في هذه الفئة
التعليق التوضيحي myannotation = (myannotation) applicmannotation.class
.getAnnotation (myannotation.class) ؛
system.out.println ("value ="+annotation.value ()) ؛
system.out.println ("color ="+annotation.color ()) ؛
}
}
}
نتيجة:
القيمة = جافا
اللون = أحمر
من برنامج الاتصال ، يمكن أيضًا ملاحظة أنه إذا كان من الممكن تعيين سمة واحدة فقط ، فيمكن حذف اسم السمة. خلاف ذلك @ فئة التعليقات التوضيحية (اسم السمة = القيمة)
3.2
نسخة الكود كما يلي:
/*التعداد فئة*/
أسبوع التعداد العام {
الشمس ، الاثنين ؛
}
/**
* فئة التعليقات التوضيحية
*/
public interface annotationText {
قيمة السلسلة () ؛
}
استيراد java.lang.annotation.elementType ؛
استيراد java.lang.annotation.Reentering ؛
استيراد java.lang.annotation.RetentionPolicy ؛
استيراد java.lang.annotation.*؛
// حدد هذا التعليق التوضيحي ليتم الاحتفاظ به في رمز bytecode
@الاحتفاظ (attreentionpolicy.runtime)
public interface myannotation {
قيمة السلسلة () ؛
Color Color () الافتراضي "الأحمر" ؛ // اضبط القيمة الافتراضية "Red"
أسبوع الأسبوع () الأسبوع الافتراضي. // نوع التعداد
int [] Array () افتراضي {1،2،3} ؛ // نوع المصفوفة
التعليق التوضيحي annotationText () الافتراضي annotationtext ("my") ؛
classdemo () integer.class
}
MyAnnotation (value = "java" ، color = "green" ، week = week.sun ، array = 5 ، enrotation =@enrotationText ( 6}
الطبقة العامة ApplyMyannotation {
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
/**
* هذا هو الحصول على التعليقات التوضيحية على الفصل ، ويمكنك أيضًا الحصول على التعليقات التوضيحية على الطريقة.
*/
if (applyMyAnnotation.class.isannotationpresent (myannotation.class)) {// تحديد ما إذا كانت هناك فئة شرح محددة في هذه الفئة
التعليق التوضيحي myannotation = (myannotation) applicmannotation.class
.getAnnotation (myannotation.class) ؛
system.out.println ("value ="+annotation.value ()) ؛
system.out.println ("color ="+annotation.color ()) ؛
System.out.println ("week ="+annotation.week ()) ؛
System.out.println ("Array length ="+antation.array (). length) ؛
system.out.println ("نوع التعليقات التوضيحية value ="+antation.annotation (). value ()) ؛
System.out.println ("نوع الفئة value ="+enrotation.classdemo ()) ؛
}
}
}
نتيجة:
نسخة الكود كما يلي:
القيمة = جافا
اللون = الأخضر
الأسبوع = الشمس
طول الصفيف = 1
قيمة نوع التعليقات التوضيحية = أنت
قيمة نوع الفئة = classjava.lang.string
4. التعليقات التوضيحية على الطريقة
نسخة الكود كما يلي:
Importjava.lang.annotation.Reentering ؛
Importjava.lang.annotation.ReetentionPolicy ؛
/**
*فئة التعليقات التوضيحية
*/
@الاحتفاظ (attreentionpolicy.runtime)
public interface annotationText {
StringValue () ؛
}
publicclassapplymyannotation {
PublicStaticVoidMain (سلسلة [] args) throwsexception {
methodMethodShow = ApplyMyAnnotation.class.getMethod ("show") ؛
incenotationTextanno = methodshow.getAnnotation (enrotationText.Class) ؛
System.out.println (anno.value ()) ؛
}
annotationText ("Java")
publicvoidshow () {
System.out.println ("Hello") ؛
}
}
النتائج: جافا