boolean (final Object o) { if (this == o) return true; if (o == null) return false; V v = get(); //noinspection unchecked Object thatV = ((ValueReference<K, V>)o).get(); return v != null && v.equals(thatV); }