cari
RumahJavajavaTutorialCara menggunakan generik dalam bahasa Java

Cara menggunakan generik dalam bahasa Java

Jun 10, 2023 am 10:49 AM
generik javaJenis parameterjenis keselamatan

Cara menggunakan generik dalam bahasa Java

Bahasa Java ialah bahasa pengaturcaraan selamat jenis, yang bermaksud bahawa ia menyemak ralat jenis pada masa penyusunan, dengan itu mengurangkan ralat yang berlaku pada masa jalan. Pengenalan generik dalam Java 5 membolehkan pengaturcara Java mengendalikan jenis data dengan lebih fleksibel, membuat peningkatan besar dalam keselamatan jenis dan kebolehbacaan kod. Artikel ini akan memperkenalkan konsep asas dan penggunaan generik bahasa Java.

1. Konsep generik

Generik ialah mekanisme parameterisasi jenis dalam Java yang menyokong penulisan kod umum yang boleh mengendalikan pelbagai jenis data. Generik menyediakan sokongan untuk pemeriksaan jenis masa kompilasi dan penukaran jenis masa jalan, yang membolehkan pengaturcara mengelakkan ralat penukaran jenis dan pengecualian masa jalan.

Sintaks asas generik adalah seperti berikut:

class MyClass<T> {
   T obj;
  …
}

Antaranya, "" ialah parameter jenis, menunjukkan bahawa T ialah parameter jenis dan boleh digantikan dengan mana-mana data menaip. Dalam contoh di atas, obj ialah objek generik.

2. Kelebihan Generik

Kelebihan utama menggunakan generik termasuk:

  • Kebolehbacaan kod yang dipertingkatkan.
  • Tingkatkan kebolehpercayaan kod, kerana pengkompil akan menyemak jenis, mengurangkan ralat jenis masa jalan.
  • Kebolehgunaan semula kod adalah lebih tinggi kerana kod generik boleh digunakan untuk mencipta kod generik yang boleh mengendalikan pelbagai jenis set data.
  • Sokongan yang lebih baik untuk keselamatan jenis dan penukaran jenis.

3. Penggunaan generik

Penggunaan generik boleh dibahagikan kepada kelas generik, kaedah generik dan antara muka generik. Berikut menerangkan cara menggunakan ketiga-tiga situasi ini masing-masing.

3.1 Kelas generik

Kelas generik ialah kelas yang mengisytiharkan satu atau lebih pembolehubah jenis. Apabila mentakrifkan kelas generik, tambah "" selepas nama kelas untuk menunjukkan bahawa ini ialah kelas dengan parameter jenis.

Contohnya:

class MyClass<T> {
   T value;
   public void setValue(T value){
      this.value = value;
   }
   public T getValue(){
      return value;
   }
}

Dalam contoh di atas, MyClass ialah kelas generik dan "" bermaksud ia dipanggil parameter generik. Parameter dan jenis pulangan dalam kaedah setValue() dan getValue() ialah kedua-dua jenis T, yang bermaksud bahawa sebarang jenis data boleh digunakan untuk mengisi pembolehubah nilai.

3.2 Kaedah generik

Kaedah generik ialah kaedah yang mempunyai parameter jenis generik apabila diisytiharkan. Menggunakan kaedah generik membolehkan kod yang lebih fleksibel dan selamat jenis.

Contohnya:

class MyClass {
   public static <E> void printArray(E[] arr){
      for (E element : arr){
         System.out.println(element);
      }
   }
}

Dalam contoh di atas, kaedah printArray() menggunakan parameter jenis generik E, yang boleh dipanggil dengan menghantar tatasusunan pelbagai jenis.

3.3 Antara muka generik

Antara muka generik ialah antara muka yang diisytiharkan dalam bentuk parameter jenis. Anda boleh menggunakan antara muka generik untuk menentukan antara muka yang menyokong pelbagai jenis set data.

Contohnya:

interface MyInterface<T> {
   void add(T element);
   T get(int index);
}

Dalam contoh di atas, MyInterface ialah antara muka berparameter Dalam antara muka ini, kaedah add() dan kaedah get() menggunakan parameter jenis T untuk menyokong Jenis set data yang berbeza.

4. Pemadaman jenis generik

Pemadaman jenis generik bermaksud bahawa pada masa penyusunan, pengkompil Java akan menggantikan semua parameter jenis generik dengan jenis sempadan atau jenis Objek. Ini bermakna bahawa pada masa berjalan, maklumat jenis konkrit parameter jenis generik tidak lagi boleh diakses.

Contohnya:

class Test<T> {
   T obj;
   public Test(T obj){
      this.obj = obj;
   }
   public T getObj(){
      return obj;
   }
}

Dalam contoh di atas, T akan dipadamkan untuk menaip Objek semasa penyusunan, jadi di dalam pengkompil, kelas Ujian sebenarnya kelihatan seperti ini:

class Test {
   Object obj;
   public Test(Object obj){
      this.obj = obj;
   }
   public Object getObj(){
      return obj;
   }
}

Oleh itu, maklumat jenis khusus parameter jenis T tidak boleh diakses pada masa jalan.

5. Ringkasan

Generik ialah ciri yang sangat berguna dalam Java. Ia boleh meningkatkan fleksibiliti dan kebolehbacaan aplikasi, sambil mengurangkan ralat penukaran jenis dan pengecualian masa jalan. Apabila menggunakan generik, anda perlu memberi perhatian kepada isu pemadaman jenis untuk mengelakkan ralat penukaran jenis yang tidak dijangka.

Atas ialah kandungan terperinci Cara menggunakan generik dalam bahasa Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Bagaimanakah saya menggunakan Maven atau Gradle untuk Pengurusan Projek Java Lanjutan, Membina Automasi, dan Resolusi Ketergantungan?Mar 17, 2025 pm 05:46 PM

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Bagaimanakah saya membuat dan menggunakan perpustakaan Java Custom (fail JAR) dengan pengurusan versi dan pergantungan yang betul?Mar 17, 2025 pm 05:45 PM

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.

Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Bagaimanakah saya melaksanakan caching pelbagai peringkat dalam aplikasi java menggunakan perpustakaan seperti kafein atau cache jambu?Mar 17, 2025 pm 05:44 PM

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Bagaimanakah saya boleh menggunakan JPA (Java Constence API) untuk pemetaan objek-objek dengan ciri-ciri canggih seperti caching dan malas malas?Mar 17, 2025 pm 05:43 PM

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Bagaimanakah mekanisme kelas muatan Java berfungsi, termasuk kelas yang berbeza dan model delegasi mereka?Mar 17, 2025 pm 05:35 PM

Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular