我有一個關於Java「equals」方法的問題。添加成員/設置器時,默認'equals'的行爲會發生變化嗎?
我創建了一個名爲Person類:
public class Person {
}
而且我比較喜歡這人兩個引用。
Person p1 = new Person();
Person p2 = new Person();
System.out.println(p1.equals(p2)); //returns false
如果我添加了任何實例變量和setter方法來設置實例變量,那麼「equals」方法返回true。
有人可以解釋這種行爲嗎?
你可以發佈你的代碼嗎?方法或字段的添加不應該影響equals方法,否則必須進行其他操作。 – Dev 2011-05-01 05:16:53
添加setter方法和實例變量不會使Object相等。您還必須進行其他更改。發佈你的SSCCE(http://sscce.org),以證明這種行爲。 – camickr 2011-05-01 05:18:35
(查看Dev的回答以及我對此的評論。) – 2011-05-01 05:19:33