Java ialah bahasa yang ditaip secara statik, dan pengkompil mesti mengetahui jenis pembolehubah pada masa penyusunan, yang menjadikan Java sangat baik dalam keselamatan jenis program. Walau bagaimanapun, dalam beberapa kes, kita perlu menulis kod dengan lebih fleksibiliti dan kebolehgunaan semula, dan kemudian kita boleh memanfaatkan mekanisme pengaturcaraan generik dalam Java.
Pengaturcaraan generik membolehkan kami menulis kod yang boleh mengendalikan berbilang jenis objek tanpa perlu menulis kod yang berbeza untuk setiap jenis. Pengaturcaraan generik dalam Java dilaksanakan melalui jenis parameter, iaitu, apabila menentukan kelas, antara muka dan kaedah, parameter jenis digunakan dan bukannya parameter jenis tertentu. Sebagai contoh, berikut ialah definisi jenis ArrayList menggunakan generik:
public class ArrayList<E> implements List<E> { // ... }
Dalam kod di atas, kelas ArrayList
menggunakan parameter jenis E
untuk mewakili jenis elemen dalam senarai. Parameter jenis ini boleh ditentukan sebagai mana-mana jenis yang diperlukan semasa mencipta objek. Contohnya, untuk mencipta objek ArrayList
untuk menyimpan rentetan, anda boleh menulis:
ArrayList<String> list = new ArrayList<String>();
Dalam contoh ini, E
ditentukan sebagai jenis String
, jadi objek list
sahaja Boleh menyimpan tali.
Menggunakan pengaturcaraan generik boleh membawa banyak faedah. Faedah pertama ialah keselamatan jenis. Parameter jenis boleh disemak pada masa penyusunan, yang membolehkan pengkompil membantu kami mengelakkan beberapa ralat jenis biasa. Contohnya, jika anda meletakkan objek String
ke dalam ArrayList<Integer>
, pengkompil akan melaporkan ralat.
Faedah kedua ialah penggunaan semula kod. Generik membolehkan kami menulis kod yang lebih umum yang boleh mengendalikan pelbagai jenis objek, yang boleh mengurangkan jumlah kod dan meningkatkan kebolehbacaan dan kebolehselenggaraan kod.
Faedah ketiga ialah skalabiliti program. Dengan menggunakan pengaturcaraan generik, kita boleh menulis kod yang lebih fleksibel dan boleh memanjangkan atur cara dengan lebih mudah untuk memenuhi lebih banyak keperluan.
Pengaturcaraan generik digunakan secara meluas dalam rangka kerja koleksi di Java, termasuk ArrayList
, LinkedList
, HashMap
, dsb. Mekanisme generik yang diperkenalkan dalam Java 5 menjadikan penggunaan rangka kerja pengumpulan lebih mudah dan selamat.
Selain rangka kerja pengumpulan, pengaturcaraan generik juga boleh digunakan untuk bidang lain. Sebagai contoh, kita boleh menggunakan generik untuk menulis algoritma umum yang boleh mengendalikan pelbagai jenis data. Berikut ialah contoh mudah yang menunjukkan cara menggunakan generik untuk menulis algoritma untuk mencari elemen terbesar:
public class Max { public static <T extends Comparable<T>> T max(T[] array) { T max = array[0]; for (int i = 1; i < array.length; i++) { if (array[i].compareTo(max) > 0) { max = array[i]; } } return max; } }
Dalam kod di atas, parameter generik <T extends Comparable<T>>
bermakna parameter jenis T
mesti melaksanakan Comparable
antara muka, yang bermaksud ia mempunyai kaedah compareTo
yang boleh membandingkan saiz dua objek. Apabila melaksanakan algoritma, kami menggunakan kaedah compareTo
untuk membandingkan saiz elemen untuk mencari elemen terbesar.
Di atas ialah mekanisme pengaturcaraan generik dan aplikasinya dalam Java Melalui pengaturcaraan generik, kami boleh menulis kod yang lebih umum, selamat dan fleksibel serta meningkatkan kebolehbacaan dan kebolehselenggaraan program.
Atas ialah kandungan terperinci Pengaturcaraan generik dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!