Generik: yaitu, "Tipe Parameterisasi", tipe data yang dioperasikan ditentukan sebagai parameter. Mekanisme ini memungkinkan programmer untuk mendeteksi jenis ilegal pada waktu kompilasi.
Perbedaan antara tidak menggunakan obat generik dan menggunakan obat generik
Tidak ada kode generik:
impor java.util.arraylist; impor java.util.list; kelas publik nogenerics {public static void main (string [] args) {list arraylist = new arraylist (); arraylist.add ("1"); // tipe karakter arraylist.add (1); // Jenis nomor untuk (int i = 0; i <arraylist.size (); i ++) {string s = (string) arraylist.get (i); // Cast Conversion, tetapi tidak dapat dikonversi ke jenis karakter, dan tidak ada kesalahan yang dilaporkan untuk kompilasi System.out.println (s);}}}Menggunakan kode generik:
Impor java.util.arraylist; import java.util.list; generik kelas publik {public static void main (string [] args) {list <string> stringlist = arraylist baru <string> (); list <integer> integerlist = new arraylist <> (); // Sederhanakan StringList.Add ("1"); //Stringlist.add(1); // Kompilasi kesalahan, hanya jenis karakter yang dapat ditambahkan integerlist.add (1); //Integerlist.add("1 "); // Kompilasi kesalahan, hanya tipe angka yang dapat ditambahkan untuk (int i = 0; i <stringList.size (); i ++) {string s = stringList.get (i); System.out.println (s);} untuk (int j = 0; j <integerlist.size (); j ++) {int j = 0; j <integerlist (); j ++) {int j = 0; j <integerlist (); j ++) {int j = 0; i = integerlist.get (j); system.out.println (i);}}}CATATAN: Dalam versi JDK, daftar <string> <StringList = New ArrayList <String> (); dapat disingkat sebagai daftar <string> stringlist = new ArrayList <> ();
Keuntungan obat generik:
1. Jenis keamanan; Misalnya, daftar <string> hanya dapat memasukkan tipe string, cukup masukkan sebagai tipe yang membatasi.
2. Menghilangkan casting; Jadikan kode lebih mudah dibaca dan kurangi kemungkinan kesalahan.
3. Manfaat kinerja potensial; Generik membawa kemungkinan untuk optimasi yang lebih besar. Jika tidak ada obat generik, programmer akan menentukan gips ini.
Melihat:
1. Parameter tipe tipe generik hanya bisa berupa jenis kelas (termasuk kelas khusus), bukan tipe sederhana. Misalnya daftar <String, Person>
2. Mungkin ada beberapa parameter jenis untuk obat generik, seperti daftar <string, integer>