نظرة عامة على تعليقات جافا:
1.
2. ثلاثة تعليقات توضيحية أساسية:
يخبر Override المترجم أن هذا يتجاوز الطريقة
@deprecated أخبر المترجم أن الطريقة عفا عليها الزمن
suppressWarnings ("غير محدد") لا تحذر
= (value = {"uncheced"})
3. يمكن استخدام التعليقات التوضيحية لاستبدال ملفات التكوين التقليدية
4. بدءًا من JDK5 ، أضافت Java دعمًا للبيانات الوصفية (البيانات الوصفية) ، وهي التعليقات التوضيحية.
التعليقات التوضيحية المخصصة وشروط الانعكاس
التعليقات التوضيحية المخصصة:
1. قم بإنشاء تعليق توضيحي جديد: (رمز واحد فقط من تعريف الواجهة)
نسخة الكود كما يلي:
public interface myannotation {
//ملكية
سلسلة من () ؛
int age () ؛
سلسلة الجنس () ؛
}
2. تعيين التعليق التوضيحي مع القيم الافتراضية
نسخة الكود كما يلي:
public interface youannotation {
سلسلة WHO () الافتراضي "توم" ؛
int age () الافتراضي 0 ؛
سلسلة الجنس () الافتراضي "أنثى" ؛
}
3. الموقف المصفوفة
نسخة الكود كما يلي:
public interface theannotation {
سلسلة [] value () ؛
}
metaannotation / metaannotation
تستخدم لتعديل التعليقات التوضيحية. (يمكنك عرض الكود المصدري لـ Override)
سياسة التعليق التوضيحي لإعادة النظر ، تستخدم لتحديد المجالات التي يمكن أن يحتفظ بها التعليق التوضيحي
attreencepolicy.class
يوجد على مستوى Bytecode ، ولكن ليس مرئيًا على مستوى التشغيل (افتراضي)
attreencepolicy.runtime
جميع المستويات الثلاثة مرئية ويمكن أن تنعكس أثناء وقت التشغيل
attreencePolicy.Source متاح فقط على مستوى الكود المصدر وليس مرئيًا على مستوى الرمز BYTECODE.
Target يحدد نطاق التعليق التوضيحي المستخدم
@موثقة اكتب إلى المستند.
inherited الوراثة ، لا تزال الفئات الفرعية ترث هذه الفئة لديها خصائص فئة الوالدين باعتبارها التعليق التوضيحي.
السابقين.
التعليقات التوضيحية تعريف هي كما يلي:
نسخة الكود كما يلي:
// دعنا تنعكس في وقت التشغيل
@الاحتفاظ (attreentionpolicy.runtime)
public interface dbinfo {
String Driver () افتراضي "com.mysql.jdbc.driver" ؛
String url () افتراضي "url = jdbc: mysql: // localhost: 3306/Academic" ؛
سلسلة كلمة المرور () الافتراضي "1234" ؛
سلسلة المستخدم () الافتراضي "الجذر" ؛
}
حقن الانعكاس:
نسخة الكود كما يلي:
dbinfo
الاتصال الثابت العام getConnection () يلقي الاستثناء {
// احصل على رمز Bytecode من هذه الفئة
class clazz = demo2.class ؛
// احصل على الطريقة العامة المسماة getConnection () في هذا الفصل
// المعلمة 1: اسم الطريقة
// المعلمة 2: كائن Bytecode المقابل لمعلمة نوع الطريقة
طريقة طريقة = clazz.getMethod ("getConnection" ، null) ؛
// من خلال هذه الطريقة ، الحصول على التعليق التوضيحي المحدد على الطريقة
dbinfo dbinfo = method.getAnnotation (dbinfo.class) ؛
سائق السلسلة = dbinfo.driver () ؛
url url = dbinfo.url () ؛
string user = dbinfo.username () ؛
سلسلة كلمة مرور = dbinfo.password () ؛
class.forname (driver) ؛
إرجاع drivermanager.getConnection (url ، المستخدم ، كلمة المرور) ؛
}