FWIW, это была моя реализация:
private static boolean equals(Object a, Object b) {
return a == b || (a != null && a.equals(b));
}
В моем приложении я знаю, что a и b всегда будут одного и того же типа, но я подозреваю, что это прекрасно работает, даже если это не так, при условии, что a.equals () разумно реализована.