On 8/31/2010 11:21 AM, Muhammad Edwin wrote:


masalahnya kenapa Integer a == Integer b hasilnya *true*,
tapi Integer c ==  Integer d hasilnya *false*.

klo misalkan pakek equals
        System.out.println(a.equals(b));
        System.out.println(c.equals(d));
hasilnya akan jadi *true *dan *true*.

tapi klo pakek '==' jadi *true *dan *false*.

Karena itulah kelemahan bahasa Java. He he he.

http://users.csc.calpoly.edu/~jdalbey/SWE/JavaPitfalls.html

Intinya adalah karena == cuma bisa dipakai untuk primitive data type.
Untuk object anda harus menggunakan method equals.
Dalam kasus anda a dan b dimap oleh class Integer ke primitive data
type sedangkan c dan d tidak dimap ke primitive data type.

Ini penyakit Java yang nggak bakal sembuh jadi ya
diterima saja kalau masih mau pakai Java.

Kirim email ke