Generics: นั่นคือ "ประเภทพารามิเตอร์" ชนิดข้อมูลที่ดำเนินการถูกระบุเป็นพารามิเตอร์ กลไกนี้ช่วยให้โปรแกรมเมอร์สามารถตรวจจับประเภทที่ผิดกฎหมายในเวลารวบรวม
ความแตกต่างระหว่างการไม่ใช้ยาชื่อสามัญและการใช้ยาสามัญ
ไม่มีรหัสทั่วไป:
นำเข้า java.util.arraylist; นำเข้า java.util.list; คลาสสาธารณะ Nogenerics {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {รายการ arraylist = new ArrayList (); arraylist.add ("1"); // ประเภทอักขระ arraylist.add (1); // หมายเลขประเภทสำหรับ (int i = 0; i <arraylist.size (); i ++) {string s = (สตริง) arraylist.get (i); // การแปลง Cast แต่ไม่สามารถแปลงเป็นประเภทอักขระและไม่มีการรายงานข้อผิดพลาดสำหรับการรวบรวม system.out.println (s);}}}}การใช้รหัสทั่วไป:
นำเข้า java.util.arraylist; นำเข้า java.util.list; คลาสสาธารณะทั่วไป {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {list <string> stringList = new ArrayList <String> (); รายการ <teger> integerList = new ArrayList <> (); // ทำให้ SMALPLIFY StringList.add ("1"); //stringlist.add(1); // ข้อผิดพลาดคอมไพล์สามารถเพิ่มประเภทอักขระเท่านั้นที่สามารถเพิ่ม IntegerList.add (1); //integerlist.add("1 "); // ข้อผิดพลาดคอมไพล์สามารถเพิ่มประเภทตัวเลขเท่านั้นสำหรับ (int i = 0; i <stringlist.size (); i ++) {string s = stringlist.get.get (i); system.out.println (s);} สำหรับ (int j = 0; i = integerlist.get (j); system.out.println (i);}}}หมายเหตุ: ในเวอร์ชัน JDK, รายการ <String> stringList = new ArrayList <String> (); สามารถย่อเป็นรายการ <String> stringList = new ArrayList <> ();
ข้อดีของยาสามัญ:
1. ประเภทความปลอดภัย; ตัวอย่างเช่นรายการ <string> สามารถแทรกประเภทสตริงได้เพียงวางเป็นประเภทการ จำกัด
2. กำจัดการหล่อ ทำให้รหัสอ่านได้มากขึ้นและลดโอกาสของข้อผิดพลาด
3. ผลประโยชน์ที่มีศักยภาพ ยาสามัญนำความเป็นไปได้สำหรับการปรับให้เหมาะสมมากขึ้น หากไม่มียาสามัญโปรแกรมเมอร์จะระบุการคัดเลือกเหล่านี้
สังเกต:
1. พารามิเตอร์ประเภทของประเภททั่วไปสามารถเป็นประเภทคลาส (รวมถึงคลาสที่กำหนดเอง) ไม่ใช่ประเภทง่าย ๆ ตัวอย่างเช่นรายการ <สตริงบุคคล>
2. อาจมีพารามิเตอร์หลายประเภทสำหรับทั่วไปเช่นรายการ <สตริง, จำนวนเต็ม>