@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Ref2)) return false; Ref2 ref2 = (Ref2) o; if (which != null ? !which.equals(ref2.which) : ref2.which != null) return false; if (first != null ? !first.equals(ref2.first) : ref2.first != null) return false; if (second != null ? !second.equals(ref2.second) : ref2.second != null) return false; return true; }