Generik Java (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang Java Generics, bagaimana membuat kelas dan kaedah generik dan kelebihannya dengan bantuan contoh.

Java Generics membolehkan kita membuat satu kelas, antara muka, dan metode yang dapat digunakan dengan berbagai jenis data (objek).

Ini membantu kami menggunakan semula kod kami.

Nota : Generik tidak berfungsi dengan jenis primitif ( int, float, char, dan lain-lain).

Kelas Generik Java

Kita boleh membuat kelas yang boleh digunakan dengan jenis data apa pun. Kelas sedemikian dikenali sebagai Kelas Generik.

Inilah cara kita membuat kelas generik di Java:

Contoh: Buat Kelas Generik

 class Main ( public static void main(String() args) ( // initialize generic class // with Integer data GenericsClass intObj = new GenericsClass(5); System.out.println("Generic Class returns: " + intObj.getData()); // initialize generic class // with String data GenericsClass stringObj = new GenericsClass("Java Programming"); System.out.println("Generic Class returns: " + stringObj.getData()); ) ) // create a generics class class GenericsClass ( // variable of T type private T data; public GenericsClass(T data) ( this.data = data; ) // method that return T type variable public T getData() ( return this.data; ) )

Pengeluaran

 Pengembalian Kelas Generik: 5 pulangan Kelas Generik: Pengaturcaraan Java

Dalam contoh di atas, kami telah membuat kelas generik bernama GenericsClass. Kelas ini boleh digunakan untuk bekerja dengan sebarang jenis data.

 class GenericsClass (… )

Di sini, T yang digunakan di dalam kurungan sudut menunjukkan parameter jenis . Di dalam Mainkelas, kami telah membuat dua objek GenericsClass

  • intObj - Di sini, parameter jenis T digantikan oleh Integer. Sekarang, GenericsClass berfungsi dengan data integer.
  • stringObj - Di sini, parameter jenis T digantikan oleh String. Sekarang, GenericsClass berfungsi dengan data rentetan.

Kaedah Generik Java

Sama dengan kelas generik, kita juga dapat membuat kaedah yang dapat digunakan dengan semua jenis data. Kelas sedemikian dikenali sebagai Kaedah Generik.

Inilah cara kita membuat kelas generik di Java:

Contoh: Buat Kaedah Generik

 class Main ( public static void main(String() args) ( // initialize the class with Integer data DemoClass demo = new DemoClass(); // generics method working with String demo.genericsMethod("Java Programming"); // generics method working with integer demo.genericsMethod(25); ) ) class DemoClass ( // creae a generics method public void genericsMethod(T data) ( System.out.println("Generics Method:"); System.out.println("Data Passed: " + data); ) )

Pengeluaran

 Kaedah Generik: Data Lulus: Pengaturcaraan Java Kaedah Generik: Data Lulus: 25

Dalam contoh di atas, kami telah membuat kaedah generik bernama genericsM Method.

 public void genericMethod(T data) (… )

Di sini, parameter jenis dimasukkan selepas pengubah publicdan sebelum jenis pengembalian void.

Kita boleh memanggil kaedah generik dengan meletakkan jenis sebenar dan di dalam kurungan sebelum nama kaedah.

 demo.genericMethod("Java Programming"); demo.genericMethod(25);

Catatan : Kita boleh memanggil kaedah generik tanpa memasukkan parameter jenis. Sebagai contoh,

 demo.genericsMethod("Java Programming");

Dalam kes ini, penyusun dapat memadankan parameter jenis berdasarkan nilai yang diteruskan ke kaedah tersebut.

Jenis Terikat

Secara umum, parameter jenis boleh menerima sebarang jenis data (kecuali jenis primitif).

Namun, jika kita hanya ingin menggunakan generik untuk beberapa jenis tertentu (seperti menerima data jenis nombor) saja, maka kita dapat menggunakan jenis terikat.

Sekiranya jenis terikat, kami menggunakan extendskata kunci. Sebagai contoh,

 

Ini bermaksud T hanya dapat menerima data yang merupakan subtipe A.

Contoh: Jenis Terikat

 class GenericsClass ( public void display() ( System.out.println("This is a bounded type generics class."); ) ) class Main ( public static void main(String() args) ( // create an object of GenericsClass GenericsClass obj = new GenericsClass(); ) )

Dalam contoh di atas, kami telah membuat kelas bernama GenericsClass. Perhatikan ungkapan, perhatikan ungkapan

  

Di sini, GenericsClass dibuat dengan jenis terikat. Ini cara GenericsClass hanya boleh bekerja dengan jenis data yang adalah anak-anak Number( Integer, Double, dan sebagainya).

Walau bagaimanapun, kami telah membuat objek kelas generik dengan String. Dalam kes ini, kita akan mendapat ralat berikut.

GenericsClass obj = GenericsClass baru (); Sebab: pemboleh ubah inferensi T mempunyai batasan persamaan batas yang tidak serasi: Rentetan batas bawah: Nombor di mana T adalah pemboleh ubah jenis: T meluas Nombor yang dinyatakan dalam kelas GenericsClass

Kelebihan Generik Java

1. Kegunaan Kegunaan Semula

Dengan bantuan generik di Java, kita dapat menulis kod yang akan berfungsi dengan pelbagai jenis data. Sebagai contoh,

 public void genericsMethod(T data) (… )

Di sini, kami telah membuat kaedah generik. Kaedah yang sama ini dapat digunakan untuk melakukan operasi pada data bilangan bulat, data rentetan, dan sebagainya.

2. Pemeriksaan Jenis masa kompilasi

Yang jenis parameter generik menyediakan maklumat mengenai jenis data yang digunakan dalam kod generik itu. Sebagai contoh,

 // using Generics GenericsClass list = new GenericsClass();

Di sini, kita tahu bahawa GenericsClass hanya berfungsi dengan Integerdata.

Sekarang, jika kita cuba menyampaikan data selain Integer ke kelas ini, program akan menghasilkan ralat pada waktu kompilasi.

3. Digunakan dengan Koleksi

Kerangka koleksi menggunakan konsep generik di Jawa. Sebagai contoh,

 // creating a string type ArrayList ArrayList list1 = new ArrayList(); // creating a integer type ArrayList ArrayList list2 = new ArrayList();

Dalam contoh di atas, kami telah menggunakan kelas ArrayList yang sama untuk bekerja dengan pelbagai jenis data.

Sama dengan ArrayList, koleksi lain ( LinkedList, Queue, Maps, dan sebagainya) juga generik di Jawa.

Artikel menarik...