@Override public boolean equals(Object other) { if (other == null || !(other instanceof StreamDiscretizer) || (other instanceof GroupedStreamDiscretizer)) { return false; } else { try { @SuppressWarnings("unchecked") StreamDiscretizer<IN> otherDiscretizer = (StreamDiscretizer<IN>) other; return triggerPolicy.equals(otherDiscretizer.triggerPolicy) && evictionPolicy.equals(otherDiscretizer.evictionPolicy); } catch (ClassCastException e) { return false; } } }