Mengenal Generic Pada Pemrograman Java





Konsep Generic dalam Java digunakan untuk membuat kelas, antarmuka, dan metode yang dapat bekerja dengan tipe data yang berbeda sambil tetap memberikan keamanan tipe (type safety) pada saat kompilasi. Ini memungkinkan programmer untuk menulis kode yang lebih fleksibel dan dapat digunakan kembali tanpa kehilangan keamanan tipe.

Penjelasan Sederhana:

Apa itu Generic? Generic memungkinkan Anda untuk menentukan sebuah tipe parameter di dalam tanda kurung sudut <>. Contohnya, sebuah class atau method yang bisa bekerja dengan tipe data apapun, seperti String, Integer, atau tipe lainnya, tanpa menulis ulang kode.

Contoh Penggunaan: Misalnya, jika Anda memiliki sebuah class Box yang dirancang untuk menyimpan objek, dengan Generic, Anda bisa membuat class yang fleksibel seperti ini:
package com.mhyusuf;

public class Box<T> {
private T item;

public void setItem(T item) {
this.item = item;
}

public T getItem() {
return item;
}
}
Di sini, T adalah parameter tipe yang bisa diganti dengan tipe spesifik saat class dipakai. Misalnya:
package com.mhyusuf;

public class BelajarGeneric {

public static void main(String[] args) {
Box<Integer> box = new Box<>();
box.setItem(10);
System.out.println(box.getItem());

Box<String> box2 = new Box<>();
box2.setItem("Hello");
System.out.println(box2.getItem());
}
}

Manfaat Generic:
  1. Keamanan Tipe (Type Safety): Kesalahan tipe dapat dicegah saat kompilasi, sehingga mengurangi runtime errors.
  2. Kode yang Dapat Digunakan Kembali (Reusable Code): Anda bisa menggunakan satu definisi class atau method untuk berbagai tipe data tanpa duplikasi.
  3. Mengurangi Cast yang Tidak Perlu: Tidak perlu melakukan casting eksplisit saat mengambil nilai dari objek yang menggunakan Generic.
Batasan Generic
Generic hanya berlaku pada saat compile-time. Informasi tipe dihapus selama proses compilation oleh Java compiler dalam proses yang disebut Type Erasure.

Anda tidak bisa menggunakan tipe primitif  langsung seperti int atau char. Sebagai gantinya, gunakan tipe pembungkus seperti Integer atau Character.
Box<int> box = new Box<>();
box.setItem(
10);
System.
out.println(box.getItem());

Box<
char> box2 = new Box<>();
box2.setItem(
'a');
System.
out.println(box2.getItem());
Contoh Penggunaan di Method:

Anda juga bisa membuat metode yang bersifat Generic:

package com.mhyusuf;

public class BelajarGeneric {

public static <T> void printArray(T[] array) {
for (T element : array) {
System.out.println(element);
}
}

public static void main(String[] args) {
String[] stringArray = {"A", "B", "C"};
printArray(stringArray);

Integer[] intArray = {1, 2, 3};
printArray(intArray);
}
}


Comments

Popular posts from this blog

Numpang Kerja Remote dari Bandung Creative Hub

Numpang Kerja Remote dari Bandung Digital Valley

Cara Decompile berkas Dex dan Apk Android