J. E. N. I.
Bab 13 Pengenalan Generics
13.1 Tujuan
Release Java terbaru menyediakan langkah terbesar dalam pemrograman Java dibandingkan dengan versi-versi lain sebelumnya. Ini terdiri atas ekstensi yang cukup signifikan terhadap source language syntax. Bagian yang paling terlihat yaitu penambahan generic types.
Modul ini mengenalkan Anda konsep dasar mengenai Java generic types.
Setelah melengkapi pembahasan ini, anda harus dapat: 1. Mengapresiasikan keuntungan dari generic types 2. Mendeklarasikan class generic 3. Menggunakan constrained generics 4. Mendeklarasikan method generic
13.2 Mengapa Generics?
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 generics 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).
Mari pertama-tama mempertimbangkan sebuah object ArrayList dan lihat bagaimana type generic akan membantu dalam peningkatan kode kita. Seperti yang sudah Anda ketahui, sebuah object arraylist memiliki kemampuan untuk menyimpan elemen-elemen dari beberapa tipe referensi untuk list ini. Sebuah instance arraylist, bagaimanapun, selalu memaksa kita untuk men-downcast object-object kita membantu mendapatkan kembali dari list. Pertimbangkan pernyataan berikut:
String myString =( String) myArrayList. get( 0);
Versi generic dari class ArrayList didesain untuk bekerja secara asli dengan beberapa tipe class. Sama seperti, dia juga mempertahankan manfaat dari pengecekan tipe( type
Pengenalan Pemrograman 2 1