boolean (Object o) { if (this == o) return true; if (!(o instanceof Key)) return false; if (myHash != o.hashCode()) return false; T t = get(); @SuppressWarnings("unchecked") T u = ((Key<T>)o).get(); if (t == null || u == null) return false; return keysEqual(t, u, myStrategy); }