boolean (Object o) { if (this == o) return true; if (!(o instanceof KeyReference)) return false; K t = get(); //noinspection unchecked K other = ((KeyReference<K,V>)o).get(); if (t == null || other == null) return false; if (t == other) return true; return myHash == o.hashCode() && myStrategy.equals(t, other); }