Fungsi generik meningkatkan kebolehgunaan semula dan keselamatan jenis fungsi dengan menggunakan parameter jenis, membolehkan anda menentukan fungsi yang menerima parameter jenis yang berbeza. Anda boleh menentukan sempadan pada parameter jenis untuk memastikan bahawa ia mensubkelaskan jenis tertentu atau melaksanakan antara muka tertentu. Pengkompil biasanya boleh membuat kesimpulan jenis parameter dan anda tidak perlu mengisytiharkannya secara eksplisit jika anda menentukan jenis sebenar parameter di tapak panggilan. Fungsi generik boleh digunakan untuk menyelesaikan pelbagai masalah Sebagai contoh, fungsi generik boleh mencari elemen terbesar dalam senarai, tanpa mengira jenis elemen dalam senarai, selagi ia melaksanakan antara muka Sebanding.
Mencapai keselamatan jenis dengan generik fungsi Java
Generik fungsi ialah mekanisme berkuasa yang membolehkan anda mentakrifkan fungsi yang menerima parameter pelbagai jenis. Ini meningkatkan kebolehgunaan semula kod dan keselamatan jenis. . Melaksanakan antara muka khusus:
<T> T max(T a, T b) { // ... }
Taip inferens
Pengkompil biasanya boleh membuat kesimpulan parameter jenis. Anda tidak perlu mengisytiharkan parameter jenis secara eksplisit jika anda menyatakan jenis parameter sebenar di tapak panggilan:
<T extends Number> T sum(List<T> numbers) { // ... }
Contoh praktikal
Andaikan anda ingin menulis fungsi untuk mencari elemen terbesar dalam senarai :
Integer result = max(1, 2); // 编译器推断类型是 Integer
Fungsi generik ini Menerima sebarang jenis yang melaksanakan antara muka , memastikan ia boleh membandingkan elemen dan mencari elemen terbesar.
Anda boleh menggunakan fungsi ini dalam kod berikut:<T extends Comparable<T>> T findMax(List<T> list) { if (list.isEmpty()) { throw new IllegalArgumentException("List is empty"); } T max = list.get(0); for (T element : list) { if (element.compareTo(max) > 0) { max = element; } } return max; }
Atas ialah kandungan terperinci Bagaimana untuk mencapai keselamatan jenis menggunakan generik fungsi Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!