### Question:
ForEachExpression extends ArrayUpdateExpression { @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (getClass() != obj.getClass()) { return false; } final ForEachExpression other = (ForEachExpression) obj; if (!Objects.equals(this.field, other.field)) { return false; } if (!Objects.equals(this.query, other.query)) { return false; } if (!Objects.equals(this.update, other.update)) { return false; } return true; } ForEachExpression(Path field, QueryExpression query, UpdateExpression update); Path getField(); QueryExpression getQuery(); UpdateExpression getUpdate(); @Override JsonNode toJson(); static ForEachExpression fromJson(ObjectNode node); @Override int hashCode(); @Override boolean equals(Object obj);  }### Answer:
@Test public void testEquals() { assertEquals(new ForEachExpression(Path.EMPTY, null, null), new ForEachExpression(Path.EMPTY, null, null)); ForEachExpression instance = new ForEachExpression(Path.EMPTY, null, null); assertFalse(instance.equals(null)); assertFalse(instance.equals("")); assertFalse(instance.equals(new ForEachExpression(Path.ANYPATH, null, null))); }