Java Generics مع توافق الفئة والواجهة
في Java، قد يكون إنشاء كائن فئة مع قيود محددة أمرًا صعبًا. أحد السيناريوهات الشائعة هو تعريف كائن فئة يمتد إلى فئة معينة أثناء تنفيذ واجهة معينة في نفس الوقت. ومع ذلك، فإن تحقيق كلا المعوقين في وقت واحد باستخدام الأدوية العامة كان نقطة خلاف شائعة.
تحاول فرض فئة على توسيع ClassA وتنفيذ واجهة InterfaceB باستخدام بناء الجملة:
Class extends ClassA>
أو
Class extends InterfaceB>
سوف يلبي مطلبًا واحدًا فقط ويفشل في الجمع بين كليهما.
الحل
لحسن الحظ، تسمح أدوية Java العامة بواجهات متعددة أو فئة إضافية واجهات. ولتحقيق ذلك، قم بتعديل إعلان حرف البدل كما يلي:كما هو موضح في البرنامج التعليمي للأدوية العامة بواسطة Sun، من خلال إلحاق & InterfaceName لكل واجهة إضافية مطلوبة، يمكن تحقيق مزيج معقد بشكل تعسفي. على سبيل المثال، يوضح إعلان JavaDoc الخاص بـ Collections#max هذا التعقيد:public static
يتطلب الحفاظ على التوافق الثنائي هذه التصريحات المعقدة.
التنفيذ مع قيود الفئة والواجهة
لتنفيذ التقييد المطلوب في إعلان متغير، ضع حدًا عامًا على فئة:class classB { } واجهة الواجهةC { } فئة عامة MyClassclass classB { } interface interfaceC { } public class MyClass{ Class variable; }
الاستنتاج
توفر أدوية Java العامة طرقًا مرنة لإنشاء مجموعات مقيدة من الفئات والواجهات. من خلال فهم بناء الجملة والقيود، يمكن للمطورين الاستفادة من هذه القوة لفرض متطلبات محددة في التعليمات البرمجية الخاصة بهم.تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3