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
Main
kelas, 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
public
dan 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 extends
kata 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 Integer
data.
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.