الأجيال: وهذا هو ، "نوع المعلمة" ، يتم تحديد نوع البيانات الذي يتم تشغيله كمعلمة. تتيح هذه الآلية للمبرمجين اكتشاف أنواع غير قانونية في وقت الترجمة.
الفرق بين عدم استخدام الأدوية واستخدام الأدوية الجيلية
لا رمز عام:
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ الطبقة العامة nogenerics {public static void main (string [] args) {list ArrayList = new ArrayList () ؛ ArrayList.add ("1") ؛ // نوع الحرف ArrayList.add (1) ؛ // نوع الرقم لـ (int i = 0 ؛ i <arraylist.size () ؛ i ++) {string s = (string) ArrayList.get (i) ؛ // تحويل CAST ، ولكن لا يمكن تحويله إلى نوع الحرف ، ولم يتم الإبلاغ عن أي خطأ لنظام التجميع.باستخدام الرمز العام:
استيراد java.util.arraylist ؛ استيراد java.util.list ؛ عام الطبقة العامة {public static void main (string [] args) {list <string> stringlist = new ArrayList <string> () ؛ list <integer> IntegerList = new ArrayList <> () ؛ // Simplify StringList.add ("1") ؛ //stringlist.add(1) ؛ // خطأ ترجمة ، يمكن إضافة نوع الحرف فقط integerlist.add (1) ؛ //integerlist.add("1 ") ؛ // خطأ ترجمة ، يمكن إضافة نوع الرقم فقط لـ (int i = 0 ؛ i <stringlist.size () ؛ i ++) {string s = stringlist.get (i) ؛ system.out.println (s) ؛} for (int j = 0 ؛ j <integerlist.size () ؛ j ++)ملاحظة: في إصدار JDK ، قائمة <Tring> StringList = New ArrayList <String> () ؛ يمكن اختصارها كقائمة <Tring> StringList = new ArrayList <> () ؛
مزايا الأدوية:
1. اكتب السلامة ؛ على سبيل المثال ، يمكن لـ List <String> إدراج أنواع السلسلة فقط ، ما عليك سوى وضعها كأنواع مقيدة.
2. القضاء على الصب. اجعل الكود أكثر قابلية للقراءة وتقليل فرصة الأخطاء.
3. فوائد الأداء المحتملة ؛ الأدوية جلب إمكانيات لتحسين أكبر. إذا لم يكن هناك جماهير ، فسيحدد المبرمجون هذه الممثلين.
يلاحظ:
1. لا يمكن أن تكون معلمات النوع لأنواع عامة فقط أنواع فصول (بما في ذلك الفئات المخصصة) ، وليس أنواعًا بسيطة. على سبيل المثال قائمة <string ، person>
2. يمكن أن يكون هناك معلمات نوع متعددة للأشكال ، مثل القائمة <string ، integer>