Friday, November 4, 2016

How to override the hashCode, equals, toString and clone methods in Java


    @Override
    public int hashCode() {
        return new HashCodeBuilder()
                .append(contract)
                .append(periodStart)
                .append(periodEnd)
                .append(reportingDate)
                .toHashCode();
    }

    @Override
    public boolean equals(Object obj) {
        if (!(obj instanceof DefaKey)) {
            return false;
        }
        DefaKey other = (DefaKey) obj;
        return new EqualsBuilder()
                .append(contract, other.contract)
                .append(periodStart, other.periodStart)
                .append(periodEnd, other.periodEnd)
                .append(reportingDate, other.reportingDate)
                .isEquals();
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this)
                .append(getAmount().toString())
                .append(getDataType().toString())
                .toString();
    }