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.