When I saw this I got baffled:
public class Timestamp extends java.util.Date {
//...
public boolean equals(java.lang.Object ts) {
if (ts instanceof Timestamp) {
return this.equals((Timestamp)ts);
} else {
return false;
}
}
public int hashCode() {
return super.hashCode();
}
It is indeed documented with a bold Note
(see https://docs.oracle.com/javase/7/docs/api/java/sql/Timestamp.html)
What could be the cause to make such a, to me, very bad decision? Why not call super.equals(this) when compared to a java.util.Date object to make the equal comparison symmetrical?