@Override public int hashCode() { final T referent = get(); return referent == null ? 0 : referent.hashCode(); }
@Override public boolean equals(final Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } final GcWeakRef<T> ref = (GcWeakRef<T>) o; final T referent = get(); final T otherReferent = ref.get(); return (referent == null && otherReferent == null) || referent.equals(otherReferent); } }