《Effective Java》阅读体会之二--所有对象和类的通用方法(equals 注意事项)
本节论述了通用对象-java类默认的继承对象(Object)的方法和注意事项,同时也对具有类似特性的Comparable.compareTo()也进行了讲解。
?
一.覆盖equals时要遵守通用约定
?
?1.Object的equals如下:
public boolean equals(java.lang.Object phoneNumber) { if(this== phoneNumber){// 1.如equals比较耗费性能,先用==判断是//否是对象的引用 return true; } if (ts instanceof phoneNumber) {// 2. instanceof 判断类型PhoneNumber pn=(PhoneNumber)phoneNumber; // 3. 转//换类型 return areaCode==null || (areaCode!=null&&areaCode.equals(pn.areaCode));//4.关键域的比较,注意吧null情况,如果通常是相同对象引用,则这样快些 }//5.编写完成,注意检查对称性,传递性和一致性。//6.覆盖equls时总要覆盖hashCode@overridepublic hashCode(){}
??
?
?