Expression { @Override public int hashCode() { return nullSafeHashCode(expression) + nullSafeHashCode(language); } Expression(String expression, String language);  Expression(String expression);  Expression(Expression toCopy); static Expression createExpressionFromDescribedExpression(String describedExpression); static Expression createExpression(String expression, String language); String getExpression(); String getLanguage(); @Override boolean equals(Object obj); @Override int hashCode(); @Override String toString();  }
@Test public void testHashCode() { Expression expression = new Expression("hello", "there"); assertEquals("hello".hashCode() + "there".hashCode(), expression.hashCode()); }