Generic in Java
•
Pemrograman Fasilitas Generik ditambahkan ke
bahasa pemrograman Java pada tahun 2004 sebagai bagian dari J2SE 5.0
•
Memungkinkan jenis atau fungsi yang akan
dioperasikan dalam berbagai jenis objek data pada waktu kompilasi
•
Mendefinisikan kelas atau fungsi dengan jenis
generik yang dapat diganti dengan beton tipe data oleh compiler.
•
String dan Nomor adalah jenis data konkret untuk
menimpa tipe data generik.
Keuntungan dari Kelas Generic
•
Memungkinkan kompilasi deteksi kesalahan saat
(kompilasi) dibandingkan dengan waktu dari program (runtime).
•
Sebuah kelas generik atau fungsi memungkinkan
kita sebagai programmer untuk membuat beberapa jenis objek atau fungsi yang
akan dibuat.
Motivations
•
Example interface with generic type
•
Di mana <T> dianggap sebagai jenis generik
formal, yang dapat di substitusi dengan jenis tertentu kemudian.
•
Pergantian jenis generik disebut Instansiasi
generik
•
Jenis Generik harus menjadi acuan untuk jenis
lain
•
Hal ini tidak dapat diganti dengan tipe data
primitif seperti int, ganda atau arang.
•
Modal seperti huruf T dan E selalu digunakan
untuk mengacu pada jenis generik.
•
ArrayList, iterator, LinkedList dan Vector
adalah contoh dari kelas generik
ArrayList
•
An example of Generic Class in JDK 1.5
ArrayList<String>
list = new ArrayList<String>();
Kami hanya dapat menambahkan String dalam daftar objek.
contoh:
list.add(“Red”);
list.add(“Red”);
Jika nilai tidak String, maka akan terjadi ketika kesalahan
kompilasi, Contoh:
list.add(new Integer(1));
list.add(new Integer(1));
Casting tidak diperlukan untuk
mengambil nilai dari daftar dengan jenis tertentu elemen karena compiler sudah
tahu jenis elemen. contoh:
|
Dalam daftar line 4 diberi nilai
objek dari kelas dua. Casting tidak diperlukan karena daftar telah dinyatakan
objek ganda.
Pada daftar baris 5 diberikan dua kali nilai
variabel, maka secara otomatis akan dikonversi ke tipe data primitif.
Generic Class Declaration
mengutip contoh dari daftar dan antarmuka iterator dalam paket java.util:
|
•
tidak dapat membuat objek instan menggunakan
parameter jenis generik. contoh:
new
E() or new E[10] à False
•
Tidak dapat pengganti tipe data generik dengan
tipe primitif data (int, double, char, dll) sebagai tipe data generik harus
menjadi tipe data referensi.
•
class wrapper dapat diganti sebagai Integer,
Double, Character, dll
Generic Class
Example
|
|
Generic Method
•
juga dapat menggunakan jenis generik untuk
deklarasi fungsi generik.
•
contoh fungsi cetak generik untuk mencetak array
obyek:
Wildcard
•
Jenis parameter dengan bentuk "?".
•
Memberikan yang tepat elemen dari suatu obyek dengan
wildcard diketahui, ditempatkan pembatasan pada jenis fungsi yang disebut dalam
suatu objek.
•
<?> Daftar menunjukkan bahwa daftar
memiliki jenis objek yang tidak diketahui Tension Wildcard: Unbounded wildcard to form ? extends Object example :
–
Wildcard Unbounded untuk membentuk? meluas
contoh Object:
–
<? Memperpanjang Nomor> adalah jenis
wildcard adalah referensi ke nomor tersebut.
–
- Wildcard Bounded untuk membentuk? meluas T di
mana referensi wildcard dengan jenis T.
–
- Wildcard terikat rendah untuk membentuk? Super
T dimana mengacu pada jenis super T.Example :
public static double max ( TesGenerik<? extends
Number> tes )
{
// Statements
}
{
// Statements
}
<? extends Number> adalah jenis wildcard yang mengacu kelas
Number atau subtipe kelas Number. Jadi kita bisa memanggil dengan:
•
max(new TesGenerik<Integer>()) , or
•
max(new TesGenerik<Double>())
Tidak ada komentar:
Posting Komentar