Generic programming adalah salah satu cara pembuatan class dan method yang dapat digunakan untuk semua jenis tipe data, sehingga penggunaannya lebih fleksibel dan tidak kaku terhadap satu jenis tipe data saja, dimana dalam hal ini java adalah salah satu bahasa pemrograman yang sudah mendukung pemrograman generic.
Sebagai contoh apabila kita memiliki :
method void print(int a);
Code tersebut hanya akan bekerja pada tipe data integer. Akan tetapi bagaimana kalau kita juga membutuhkan method tersebut untuk tipe data String, float, char atau bahkan references type? Apakah kita harus membuat method tersebut berulang ulang kali? Tentu saja tidak, oleh karena itu solusinya adalah dengan generic programming, yaitu membuat suatu method yang bisa digunakan untuk berbagai macam data types. Sebagai contoh, perhatikanlah program dibawah ini :
public class Main {
public static <E> void print(E data) {
System.out.println(data);
}
public static void main(String[] args) {
int DataInteger = 100;
double DataDouble = 5.5;
char DataChar = 'Y';
String DataString = "Yohanda";
print(DataInteger);
print(DataDouble);
print(DataChar);
print(DataString);
}
}
Maka setelah kita compile dan kita eksekusi, method print diatas tetap bisa berjalan dan bisa menerima argument dengan berbagai macam tipe data.