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