Tuesday, 2 August 2016

Apa itu Class Generic Pada Java? Dan Bagaimana Cara Penggunaanya?

Tipe data generic adalah (Class yang diparameterkan) memungkinkan kita membuat sebuah class/interface yang bisa beroperasi pada beragam tipe data.

ATURAN PADA GENERIC

Ada beberapa aturan dalam class Generic, antara lain :
  • Generic hanya bekerja pada Wrapper class (Integer, Character, Double, Object, Class dan lain-lain)
  • Wrapper class tersebut bisa diwakilkan oleh Object, tapi tipe Object harus dicasting untuk memberitahu tipe apa yang dia wakilkan
 
CONTOH PROGRAM

Perhatikan contoh program dibawah ini.

Saya akan jelaskan satu persatu, Disana ada sebuah class Pegawa beripe Generic. <T> artinya class tersebut Generic.

PENJELASAN PROGRAM

Seperti pada penjelasan diatas generic bisa digunakan tipe data apa saja DAN harus tipe data WRAPPER. Berikut ini adalah penjelasan dari program diatas.

CASE 1

Ketika akan menggunakan class Generic, kalian tidak boleh lagi menulis begini Pewagai<T> p = new Pegawai<T>(1234455). Program akan error. Karena class generic ketika digunakan di meminta tipe data (Wrapper), kalau hanya menulis T ya itu bukan tipe data namanya, maka program akan error. Penulisan dengan parameter <T> hanya boleh dilakukan ketika class itu dibuat, bukan saat class itu digunakan.

Cara penulisannya kalian harus langsung memberikan tipe data class Generic tersebut, begini : Pegawai<String> p1 = new Pegawai<String>("12344556"). Hal ini berlaku untuk tipe data Wrapper lainnya.

CASE 2

Kalian harus meng casting sebagai tipe data tertentu jika kalian tidak mendefinisikan tipe datanya saat initialisasi, contohnya Pegawai p2 = new Pegawa<Integer>(1242534) dan saat kalian membuat int z = p2.getNik() akan terjadi error di line tersebut, kenapa? Karena program membaca bahwa p2 tipenya T bukan Integer. Oleh karena itu konsekuensinya kita harus mengcasting si p2 menjadi tipe data Integer. int nik = (Integer) p2.getNik() Dengan begitu program sudah tau kalau p2 adalah Integer

Please post a polite comment and do not post a spam
EmoticonEmoticon