الأدوية العامة هي طريقة لإنشاء فئات وأساليب آمنة للنوع يمكنها العمل على أنواع مختلفة من الكائنات لاكتشاف أخطاء الكتابة في وقت الترجمة بدلاً من وقت التشغيل.
تم تقديمه في الإصدار 5.2
فئة عامة GenericClass{عنصر T نهائي خاص؛ public GenericClass(T item) {this.item = item; } public T getItem() {return item; } }
خاص ثابتvoid printItem(T item) {System.out.println(item.toString()); }
يتم استخدامه لتقييد أو ربط أنواع معينة أو أنواعها الفرعية.
سيسمح لنا باستدعاء أساليب الفئات أو الواجهات المحدودة.
خاص ثابتdouble add(T numOne, T numTwo) {return numOne.doubleValue() + numTwo.doubleValue(); }
إنها ميزة تسمح للمترجم بتحديد نوع الطريقة العامة أو معلمة المُنشئ تلقائيًا.
Listlist = new ArrayList<>();
إنه رمز >
يُستخدم لتمثيل وسيطة نوع غير معروفة.
printItemsInList باطل ثابت خاص (List> list) {for (Object item: list) {System.out.println(item); } }
يتم استخدامه لتحديد أن وسيطة النوع يجب أن تكون نوعًا فرعيًا لفئة أو واجهة معينة.
يتم استخدامه للوصول إلى العناصر.
printItemsInList باطل ثابت خاص (List Extends Number> list) {for (Number number: list) {System.out.println(number); } }
يتم استخدامه لتحديد أن وسيطة النوع يجب أن تكون نوعًا فائقًا لفئة أو واجهة معينة.
يتم استخدامه لتعديل العناصر.
القائمة<؟ الرقم الفائق> أرقام = new ArrayList<>();numbers.add(10);numbers.add(10.2);numbers.add(10.4f);System.out.println(numbers);
اكتب السلامة
يتم تصحيح أنواع البيانات في وقت الترجمة بدلاً من وقت التشغيل مما يجعل التعليمات البرمجية أكثر قوة وموثوقية.
إمكانية إعادة استخدام الكود
كتابة فئات وأساليب يمكنها العمل مع أنواع متعددة من البيانات والتي يمكن أن تساعد في تقليل كمية التعليمات البرمجية التي تحتاج إلى كتابتها.
أداء
تحسين الأداء عن طريق تقليل الحاجة إلى قوالب الكتابة وتجنب الحمل الزائد للتحقق من النوع في وقت التشغيل.
نوع المحو
إنها ميزة رئيسية حيث تقوم بمسح الكود العام في وقت التشغيل مما قد يحد من فائدة الأدوية العامة في مواقف معينة.
دعم محدود للأنواع البدائية
لا تدعم الأدوية العامة في Java الأنواع البدائية، مثل int أو double، بشكل مباشر. بدلاً من ذلك، يجب عليك استخدام فئات المجمّع المقابلة لها، مثل عدد صحيح أو مزدوج. يمكن أن يكون هذا أقل كفاءة من العمل مع الأنواع البدائية مباشرة.
تعقيد
يمكن أن يضيف تعقيدًا إلى التعليمات البرمجية التي تستخدم التسلسلات الهرمية للأنواع المعقدة وأنواع أحرف البدل.