Pengaturan

Gambar

Lainnya

Tentang KASKUS

Pusat Bantuan

Hubungi Kami

KASKUS Plus

© 2024 KASKUS, PT Darta Media Indonesia. All rights reserved

lo36oeAvatar border
TS
lo36oe
[JAVA] - Gimana cara penyesuaian class generik dalam QUEUE ?
Permisi gan, saya mau nanya tentang dilema yang sedang saya hadapi emoticon-Frown
Mohon maaf kalo (mungkin) judul & isi threadnya ga akurat...


Ceritanya saya mahasiswa yang lagi belajar struktur data ...
Pada suatu hari ..
Quote:


masalah terjadi saat saya menggunakan class tersebut untuk data Integer. Dengan contoh method:
Spoiler for Method ala saya:


Dalam ekspektasi saya. Jika generik saat itu adalah data Interger.
return null = null (bila String atau Char, CMIIW)
return null = 0 - nol (bila Integer, CMIIW)


Spoiler for Eksekusi Method:

Tapi, ketika program di-exe. Muncul baris error berikut :

Spoiler for Pesan Error:


Dari kasus yang saya alami, saya ingin bertanya :
Spoiler for Question:


Spoiler for Penutup:
Diubah oleh lo36oe 17-12-2016 14:30
nona212
nona212 memberi reputasi
1
2.3K
8
GuestAvatar border
Guest
Tulis komentar menarik atau mention replykgpt untuk ngobrol seru
Tampilkan semua post
nay1Avatar border
nay1
#6
Quote:


1 ternyata penyebab errornya sangat sederhana. dibagian ini :

x.makeEmpty();
int tesa = 1 + x.viewFirst();

ketika anda memanggil method makeEmpty, anda membuat nilai dari listQueue beris null semua. hal ini mengakibatkan method viewFirst akan mengembalikan nilai null. maka yang terjadi adalah :

int tesa = 1 + null;

sederhananya, program mencoba mengambil nilai yang di tunjuk oleh listQueue index pertama, sedangkan index pertama tidak menunjuk kemana-mana sehingga terjadi error nullPointerException.
untuk fix tercepat namun kurang bagus, cukup mengubah baris tersebut menjadi seperti ini :

x.makeEmpty();
Integer value = x.viewFirst();
if(value == null){
value = 0;
}
int tesa = 1 + value;

4 jelas diulang 2 kali. karena ketika method viewFirst di call, maka semua perintah yang berada didalamnya akan dijalankan. setelah selesai, baru nilai return dikembalikan. Karena viewFirst dipanggil 2x, maka program akan melakukan print 2x, tidak peduli jika hasil dari return di ambil atau diabaikan.
0