それから、Java SE 5 Tigerから追加された
Java Genericsだ。

Efective Javaには

equals(Object)の代わりに
equals(自作クラス)を実装するなといっている。
これはObject#equals(Object)のオーバーライドではなく
オーバロードだ、だから絶対に実装するな、と言っている。

だが、Comparable<T>インターフェースは
こんなコードに成り代わっている。
public interface Comparable<T>{
 public int compareTo(T t);
}
compareTo(Object)と
compareTo(自作クラス)
どっちを実装すればいいだろう? 後者だけで問題無いんだろうか?