### Question:
StringParam extends BaseParam implements IQueryParameterType { @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof StringParam)) { return false; } StringParam other = (StringParam) obj; EqualsBuilder eb = new EqualsBuilder(); eb.append(myExact, other.myExact); eb.append(myContains, other.myContains); eb.append(myValue, other.myValue); eb.append(getMissing(), other.getMissing()); return eb.isEquals(); } StringParam();  StringParam(String theValue);  StringParam(String theValue, boolean theExact); @Override int hashCode(); @Override boolean equals(Object obj); String getValue(); StringParam setValue(String theValue); StringDt getValueAsStringDt(); String getValueNotNull(); boolean isContains(); StringParam setContains(boolean theContains); boolean isEmpty(); boolean isExact(); StringParam setExact(boolean theExact); @Override String toString();  }### Answer:
@Test public void testEquals() { StringParam input = new StringParam("foo", true); assertTrue(input.equals(input)); assertFalse(input.equals(null)); assertFalse(input.equals("")); assertFalse(input.equals(new StringParam("foo", false))); }