ვიცით, რომ ობიექტების შედარებისას არის რამდენიმე ვარიანტი:
== შედარების ოპერატორის საშუალებით ვადგენთ მიუთითებენ (refer) თუ არა მითითებები ერთსა და იმავე ობიექტზე;
equals() მეთოდი – ვადგენთ აზრობრივად არის ორი ობიექტი ერთმანეთის ტოლი თუ არა.
რა ხდება wrapper კლასების შემთხვევაში? თავიდან ცოტა უცნაურად მომეჩვენა…
ასეთი კითხვა:
Integer i1 = 1000;
Integer i2 = 1000;
if (i1 != i2) System.out.println("Different objects");
if (i1.equals(i2)) System.out.println("Meaningfully equal");
კოდის გაშვების შედეგად ვიღებთ:
Different objects
Meaningfully equal
რა შედეგი ექნება ამ კოდს?
Integer i1 = 10;
Integer i2 = 10;
if (i1 == i2) System.out.println("Same objects");
if (i1.equals(i2)) System.out.println("Meaningfully equal");