@Test public void shouldBeZeroOnNull() { assertEquals(0, new Pair<String, String>(null, null).hashCode()); }
@Override public int hashCode() { return ((null == v1) ? 0 : (v1.hashCode())) + ((null == v2) ? 0 : (v2.hashCode())); }
Pair { @Override public int hashCode() { return ((null == v1) ? 0 : (v1.hashCode())) + ((null == v2) ? 0 : (v2.hashCode())); } }
Pair { @Override public int hashCode() { return ((null == v1) ? 0 : (v1.hashCode())) + ((null == v2) ? 0 : (v2.hashCode())); }  }
Pair { @Override public int hashCode() { return ((null == v1) ? 0 : (v1.hashCode())) + ((null == v2) ? 0 : (v2.hashCode())); }  @Override int hashCode(); @SuppressWarnings({"unchecked"}) @Override boolean equals(Object obj); }
Pair { @Override public int hashCode() { return ((null == v1) ? 0 : (v1.hashCode())) + ((null == v2) ? 0 : (v2.hashCode())); }  @Override int hashCode(); @SuppressWarnings({"unchecked"}) @Override boolean equals(Object obj); final T1 v1; final T2 v2; }