package org.springframework.issues; public final class Reference<T> { public static <X> Reference<X> create(final X referred) { return new Reference<X>(referred); } private T referred; public Reference() { } public Reference(final T referred) { this.referred = referred; } public T get() { return referred; } public void set(final T referred) { this.referred = referred; } @Override public int hashCode() { return referred == null ? 0 : referred.hashCode(); } @Override public boolean equals(final Object o) { if (o == this) { return true; } else if (o == null) { return false; } else if (!(o instanceof Reference)) { return false; } else { return referred.equals(referred); } } @Override public String toString() { return "Reference to [" + referred + "]"; } }