Common-lang 패키지에 있는 hashcode, equals, toString 메소드 생성을 편하게 할 수 있는 클래스를 소개한 적이 있습니다.

그런데 예전 영회형 블로그를 뒤지다가 멋진 툴을 발견했습니다. 바로 그 패키지를 사용해서 명시적으로 메소드를 작성해 주는 Eclipse 플러그인입니다.

2005년에 마일스톤6에서 개발이 중단 된 플러그인으로 보여집니다.
업데이트 사이트 URL은 http://commonclipse.sourceforge.net 입니다.

사용자 삽입 이미지위에 보이는 것과 같이 설치하면 compareTo() 메소드와 Object 클래스에 있는 것들 중에 종종 오버라이딩하여 구현해야 할 녀석들을 만들어주는 메뉴가 보입니다.

다음은 username과 password만 가지고 있는 Member 클래스에서 위의 메뉴를 사용하여 생성한 메소드들 입니다.

    /**
     * @see java.lang.Object#equals(Object)
     */
    public boolean equals(Object object) {
        if (!(object instanceof Member)) {
            return false;
        }
        Member rhs = (Member) object;
        return new EqualsBuilder().appendSuper(super.equals(object)).append(this.username, rhs.username).append(
                this.password, rhs.password).isEquals();
    }

    /**
     * @see java.lang.Object#hashCode()
     */
    public int hashCode() {
        return new HashCodeBuilder(2057170459, -1661316787).appendSuper(super.hashCode()).append(this.username).append(
                this.password).toHashCode();
    }

    /**
     * @see java.lang.Comparable#compareTo(Object)
     */
    public int compareTo(Object object) {
        Member myClass = (Member) object;
        return new CompareToBuilder().append(this.username, myClass.username).append(this.password, myClass.password)
                .toComparison();
    }

    /**
     * @see java.lang.Object#toString()
     */
    public String toString() {
        return new ToStringBuilder(this).append("password", this.password).append("username", this.username).toString();
    }

관련글
2007/09/27 - [모하니?/Coding] - commons.lang.builder 패키지