Satu dari penyebab adanya bugs yang paling signifikan dalam Bahasa pemrograman Java adalah keperluan akan pernyataan typecast atau downcast untuk lebih mengkhususkan tipe data dari tipe staticnya secara terus-menerus. Sebagai contoh, Sebuah object arraylist memungkinkan kita untuk menambahkan beberapa referensi tipe object pada list tapi ketika kita mendapatkan kembali elemet ini , kita perlu untuk typecast object ke tipe referensi khusus yang sesuai dengan keperluan kita. Downcasting adalah hotspot yang potensial untuk ClassCastException. Yang juga membuat kode kita menjadi lebih panjang, jadi, menjadi lebih sedikit dapat terbaca. Lebih dari itu, downcasting juga efektif merusak manfaat dari sebuah kekuatan bahasa yang diketikkan sejak dia menghapuskan keamanan yang disediakan perusahaan berupa pemeriksaan tipe(type checking).
Tujuan utama dari penambahan generic pada Java adalah untuk memecahkan masalah ini. tipe Generic memungkinkan subuah single class untuk bekerja dengan pilihan tipe yang beraneka ragam. Ini adalah jalan yang alami untuk mengeliminasi keperluan untuk pemilihan (casting).
Mendeklarasikan sebuah Class Generic
Untuk menjalankan potongan code sebelumnya, kita harus sudah mendefinisikan versi generic dari class ArrayList. Untungnya, versi java terbaru sudah menyediakan user dengan versi generic dari semua class-class Java Collection. Pada sesi ini, Anda akan mempelajari bagaimana untuk mendeklarasikan class generic anda sendiri. Dripada berdiskusi lebihpanjang lagi tentang bagaimana untuk mendeklarasikan sebuah class generic , anda akan diberikan sebuah contoh sederhana tentang class generic untuk dipelajari bentuknya.
Percobaan :
sebelum membuat class maka buatlah sebuah java project dengan cara klik File --> New --> Java Project , maka akan muncul tampilan seperti gambar dibawah ini :
setelah membuat java project maka kita akan membuat kelas, seperti gambar dibawah ini dengan cara klik File --> New --> Class maka akan muncul tampilan seperti gambar dibawah ini :
Kode program untuk class Basic Generic :
class BasicGeneric <A> {private A data;
public BasicGeneric(A data) {
this.data = data;
}
public A getData() {
return data;
}
}
public BasicGeneric(A data) {
this.data = data;
}
public A getData() {
return data;
}
}
setelah itu buat class GenSample :
kode program :
public class GenSample {
public String method(String input) {
String data1 = input;
BasicGeneric <String> basicGeneric = new
BasicGeneric <String>(data1);
String data2 = basicGeneric.getData();
return data2;
}
public Integer method(int input) {
Integer data1 = new Integer(input);
BasicGeneric <Integer> basicGeneric = new
BasicGeneric <Integer>(data1);
Integer data2 = basicGeneric.getData();
return data2;
}
public static void main(String args[]) {
GenSample sample = new GenSample();
System.out.println(sample.method("Some generic data"));
System.out.println(sample.method(1234));
}
}
public String method(String input) {
String data1 = input;
BasicGeneric <String> basicGeneric = new
BasicGeneric <String>(data1);
String data2 = basicGeneric.getData();
return data2;
}
public Integer method(int input) {
Integer data1 = new Integer(input);
BasicGeneric <Integer> basicGeneric = new
BasicGeneric <Integer>(data1);
Integer data2 = basicGeneric.getData();
return data2;
}
public static void main(String args[]) {
GenSample sample = new GenSample();
System.out.println(sample.method("Some generic data"));
System.out.println(sample.method(1234));
}
}
Screenshot :
Output :
Sumber : JENI (Java Education Network Indonesia)
Tidak ada komentar:
Posting Komentar