Java Generics (Dengan Contoh)

Dalam tutorial ini, kita akan belajar tentang Java Generics, cara membuat kelas dan metode generik serta kelebihannya dengan bantuan contoh.

Java Generics memungkinkan kita untuk membuat satu kelas, antarmuka, dan metode yang dapat digunakan dengan berbagai jenis data (objek).

Ini membantu kami menggunakan kembali kode kami.

Catatan : Generik tidak bekerja dengan tipe primitif ( int, float, char, dll).

Kelas Generik Java

Kita dapat membuat kelas yang dapat digunakan dengan semua jenis data. Kelas semacam itu dikenal 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; ) )

Keluaran

 Pengembalian Kelas Generik: 5 Pengembalian Kelas Generik: Pemrograman Java

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

 class GenericsClass (… )

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

  • intObj - Di sini, parameter tipe T diganti dengan Integer. Sekarang, GenericsClass bekerja dengan data integer.
  • stringObj - Di sini, parameter tipe T diganti dengan String. Sekarang, GenericsClass bekerja dengan data string.

Metode Generik Java

Mirip dengan kelas generik, kita juga dapat membuat metode yang dapat digunakan dengan semua jenis data. Kelas seperti itu dikenal sebagai Metode Generik.

Inilah cara kita membuat kelas generik di Java:

Contoh: Buat Metode 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); ) )

Keluaran

 Metode Generik: Data Lulus: Pemrograman Java Generik Metode: Data Lulus: 25

Dalam contoh di atas, kami telah membuat metode umum bernama genericsMethod.

 public void genericMethod(T data) (… )

Di sini, parameter tipe disisipkan setelah pengubah publicdan sebelum tipe kembali void.

Kita dapat memanggil metode generik dengan menempatkan tipe aktual dan di dalam braket sebelum nama metode.

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

Catatan : Kita dapat memanggil metode generik tanpa menyertakan parameter type. Sebagai contoh,

 demo.genericsMethod("Java Programming");

Dalam kasus ini, kompilator dapat mencocokkan parameter tipe berdasarkan nilai yang diteruskan ke metode.

Jenis yang Dibatasi

Secara umum, parameter type dapat menerima semua tipe data (kecuali tipe primitif).

Namun, jika kita ingin menggunakan generik untuk beberapa tipe tertentu (seperti menerima data tipe angka) saja, maka kita bisa menggunakan tipe terikat.

Dalam kasus tipe terikat, kami menggunakan extendskata kunci. Sebagai contoh,

 

Ini berarti T hanya dapat menerima data yang merupakan subtipe dari A.

Contoh: Tipe 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 ekspresinya, perhatikan ekspresinya

  

Di sini, GenericsClass dibuat dengan tipe terikat. Cara GenericsClass ini hanya bisa bekerja dengan jenis data yang adalah anak-anak Number( Integer, Double, dan sebagainya).

Namun, kami telah membuat objek kelas generik dengan String. Dalam hal ini, kami akan mendapatkan kesalahan berikut.

GenericsClass obj = new GenericsClass (); alasan: variabel inferensi T memiliki batas yang tidak kompatibel batasan persamaan: String batas bawah: Angka di mana T adalah tipe-variabel: T meluas Jumlah yang dideklarasikan di kelas GenericsClass

Keuntungan dari Java Generics

1. Kode Dapat Digunakan Kembali

Dengan bantuan obat generik di Java, kita dapat menulis kode yang akan bekerja dengan berbagai jenis data. Sebagai contoh,

 public void genericsMethod(T data) (… )

Di sini, kami telah membuat metode generik. Metode yang sama ini dapat digunakan untuk melakukan operasi pada data integer, data string, dan sebagainya.

2. Pemeriksaan Jenis Waktu Kompilasi

The jenis parameter generik menyediakan informasi tentang jenis data yang digunakan dalam kode generik. Sebagai contoh,

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

Di sini, kita tahu bahwa GenericsClass hanya bekerja dengan Integerdata.

Sekarang, jika kita mencoba melewatkan data selain Integer ke kelas ini, program akan menghasilkan kesalahan 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 berbagai jenis data.

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

Artikel yang menarik...