@Override public boolean equals(Object object) { // is same instance if(this == object) { return true; } // is an instanceof if(object == null || !(object instanceof ConfigurationParameterBooleanImpl)) { return false; } // is same object type ConfigurationParameterBooleanImpl configurationParameter = (ConfigurationParameterBooleanImpl) object; if( this.name.equals(configurationParameter.getName()) && equalsOrNull(this.value, configurationParameter.getValue()) && equalsOrNull(this.description, configurationParameter.getDescription()) ) { return true; } // nothing equal return false; }