CaselessStringWrapper { @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (obj.getClass() != getClass()) { return false; } CaselessStringWrapper other = (CaselessStringWrapper)obj; return caselessString == null && other.caselessString == null || caselessString != null && caselessString.equals(other.caselessString); } CaselessStringWrapper(String string); String getString(); String toString(); @Override boolean equals(Object obj); @Override int hashCode();  }
@Test public void testEquals() throws Exception { assertTrue(caselessString.equals(new CaselessStringWrapper(string.toUpperCase()))); }