Memahami Wrapper Class, Autoboxing Dan Inboxing Pada Java

Apa itu wrapper class?


Wrapper class pada Java ini menyediakan prosedur untuk mengkonversi tipe data primitif menjadi objek dan objek menjadi tipe primitif.

Seperti kita ketahui sebelumnya, nilai primitif bukanlah objek, namun nilai ini sanggup dibungkus (wrap) dengan memakai class-class wrapper di Java API (Application Programming Interface). Java mempunyai santunan API yang kaya, sehingga menjadi salah satu alasan mengapa Java menjadi bahasa pemrograman yang harus dipelajari.

 pada Java ini menyediakan prosedur untuk mengkonversi  Memahami Wrapper Class, Autoboxing dan Inboxing Pada Java


Karena Java yakni pemrograman yang berorientasi objek, maka kinerjanya akan terpengaruh bila nilai dari tipe data primitif ini diperlakukan sebagai objek. Namun, terlepas dari itu semua, banyak method pada Java yang memerlukan penggunaan objek-objek sebagai argumen (pass by value).

Autoboxing dan Inboxing


Sebelum JDK 1.5, tidak gampang untuk melaksanakan konversi dari tipe primitif menyerupai int, char, float, double, byte, long, short, atau boolean menjadi equivalen dengan objeknya dari class Integer, Character, Float, Double, Byte, Long, Short atau Boolean.

Dalam Java, proses konversi dari tipe primitif menjadi objek dikenal dengan autoboxing, dan sebaliknya konversi dari objek ke tipe primitif disebut dengan inboxing. Fitur ini mulai berjalan secara otomatis sejak J2SE 5.0.

Class-class wrapper ini berada dalam  java.lang package yang berjumlah 8 class, yaitu :

TIPE PRIMITIF CLASS WRAPPER boolean       Boolean byte          Byte char          Character float         Float int           Integer long          Long short         Short double        Double 

Beberapa method dari class-class tersebut yang dipakai untuk proses autoboxing dan inboxing yakni doubleValue(), floatValue(), intValue(), longValue(), shortValue() dan byteValue().

Namun autoboxing dan inboxing ini hadir dengan peringatan tertentu yang perlu dipahami sebelum menggunakannya pada ketika melaksanakan coding,  yang menjadi lebih penting lagi, alasannya yakni ini terjadi secara otomatis sehingga berpeluang menciptakan bug halus bila anda tidak sanggup mengetahui kapan autoboxing atau inboxing terjadi.

Sebelum Java 1.5, sering terdapat topik penting mengenai bila anda memakai Collections menyerupai Hashmap ataupun ArrayList, maka anda tidak sanggup menyimpan secara eksklusif tipe data primitif ke dalam Collections tersebut, melainkan anda harus mengonversi tipe data primitif tersebut menjadi Objek gres lalu anda sanggup menyimpannya kedalam Collections.

Dengan diperkenalkannya autoboxing dan inboxing ini, maka compiler Java secara otomatis melaksanakan konversi tipe primitif menjadi objek sehingga lebih memudahkan dalam pembacaan kode.

Kapan Autoboxing dan Inboxing Digunakan?

Autoboxing diaplikasikan oleh compiler pada kondisi berikut:
  • Ketika melaksanakan pemanggilan method dimana objek sebagai argumen diharapkan, bila nilai primitif di-pass-kan maka Java secara otomatis akan mengkonversi nilai primitif tersebut menjadi nilai Objek yang sama.
  • Ketika nilai primitif ditetapkan pada variabel dari wrapper class terkait.




Contoh autoboxing ketika nilai primitif ditetapkan pada variabel dari wrapper class


Berikut ini pola konversi dari tipe primitif menjadi Integer sebelum JDK 1.5:



Setelah fitur autoboxing diperkenalkan:


Contoh autoboxing ketika melaksanakan pemanggilan method

Pada pola ini sanggup dilihat bagaimana autoboxing menunjukkan kita fasilitas untuk konversi dari primitif menjadi Objek atau bahkan sebaliknya (inboxing) tanpa harus menuliskan isyarat untuk proses tersebut secara eksplisit.


Ketika method tampilkan(Integer) yang mendapatkan objek Integer dengan primitif int tersebut dipanggil, maka autoboxing pertama-tama akan mengkonversi tipe primitif menjadi objek, gres lalu akan memanggil method tampilkan().

Kemudian pada line 14, inboxing terjadi alasannya yakni method tampilkan() mengembalikan / return Integer selanjutnya nilai yang dikembalikan/return itu disimpan atau ditetapkan ke dalam variabel z dengan tipe primitif int.

Bila Tidak Digunakan Dengan Tepat Autoboxing Bisa Menghasilkan Objek Yang Tidak Diperlukan

Autoboxing sanggup menjadi fitur yang 'berbahaya' alasannya yakni sanggup menghasilkan objek, bila auto boxing tersebut terdapat dalam loop. Berikut ini yakni pola loop di mana autoboxing sanggup memperlambat jalannya aplikasi:

Pada line 9 , x += i yakni sama dengan x = x + i, dikarenakan operator '+' tidak dapat  diterapkan oleh objek Integer, maka akan memicu unboxing dari x objek Integer. Kemudian autoboxing dari hasil yang akan disimpan pada x yakni merupakan Integer sebagai berikut:

jumlah = jumlah.intValue() + i;
Integer jumlah = new Integer(hasil);

Dikarenakan jumlah yakni Integer, maka akan menghasilkan sekitar 5000 Integer objek yang tidak diperlukan, dan bila ini terjadi pada skala yang lebih besar, maka berpotensi untuk melambatkan sistem aplikasi.

Belum ada Komentar untuk "Memahami Wrapper Class, Autoboxing Dan Inboxing Pada Java"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel