的Object
的equals
方法只是比較地址:爲什麼Java中沒有「Equlable」接口?
public boolean equals(Object obj) {
return (this == obj);
}
我認爲這不是在大多數情況下是有用的,我們可以將其覆蓋。但對於我所開發的最職業,我沒有覆蓋equals
方法,因爲我不會用它在所有...
所以我只是想知道,爲什麼Java語言的設計者把equals
方法Object
? 爲什麼沒有像「Comparable
」這樣的「Equalable」界面?
即使不覆蓋對象,知道一個物體總是等於本身是徹底有用。 – chrylis 2015-02-24 10:41:22
可能的設計者認爲默認的'equals'(和'hashCode')行爲通常是可用的(人們可以在需要的地方覆蓋它),而默認的'compareTo'實現通常不會有用,因爲並不是真的一般物體的自然排序。 – khelwood 2015-02-24 10:41:35
2件事情可以相等或不相等。它們可能不具可比性,但仍然意味着它們不相等。 – Ankit 2015-02-24 10:52:31