자바를 바탕으로 한 프로젝트를 하다 보면, 수많은 Bean 클래스를 만들게 됩니다.
그리고 모든 Bean 클래스에 들어가는 똑같은 형식의 코드를 작성하게 됩니다.
예를 들자면, 대략 아래와 같은 경우입니다.
public class Member {
private Long memberId;
private String memberName;
private String memberAddress;
public Member() {
}
public Member(Long memberId, String memberName, String memberAddress) {
this.memberId = memberId;
this.memberName = memberName;
this.memberAddress = memberAddress;
}
public Long getMemberId() {
return memberId;
}
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
public String getMemberName() {
return memberName;
}
public void setMemberName(String memberName) {
this.memberName = memberName;
}
public String getMemberAddress() {
return memberAddress;
}
public void setMemberAddress(String memberAddress) {
this.memberAddress = memberAddress;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Member member = (Member) o;
if (memberId != null ? !memberId.equals(member.memberId) : member.memberId != null) return false;
if (memberName != null ? !memberName.equals(member.memberName) : member.memberName != null) return false;
return memberAddress != null ? memberAddress.equals(member.memberAddress) : member.memberAddress == null;
}
@Override
public int hashCode() {
int result = memberId != null ? memberId.hashCode() : 0;
result = 31 * result + (memberName != null ? memberName.hashCode() : 0);
result = 31 * result + (memberAddress != null ? memberAddress.hashCode() : 0);
return result;
}
}
생성자와 Getter와 Setter 그리고 equals와 hasCode.. toString 입니다.
물론, IDE가 많이 좋아져서 자동으로 생성도 해주긴 합니다만..
소스도 보기 불편해지고, 여러모로 좋지 않습니다.
이때, Lombok을 사용하면, 아래와 같이 소스를 간결하게 고칠 수 있습니다.
@Data
@NoArgsConstructor
@AllArgsConstructor
@Getter @Setter
@EqualsAndHashCode
@ToString
public class Member {
private Long memberId;
private String memberName;
private String memberAddress;
}
Lombok이 property를 감지하여서, 각 어노테이션에 따라서 컴파일시, 자동으로 해당 메서드를 자동으로 추가해줍니다.
자세한 내용은, 아래 Lombok의 홈페이지를 참고하세요.
'Java > Java' 카테고리의 다른 글
ToStringStyle.MULTI_LINE_JSON_STYLE (0) | 2018.03.15 |
---|---|
IP 주소를 체크하는 정규 표현식. (0) | 2016.10.24 |
클래스의 정적 구성 요소 (0) | 2009.12.14 |
for 문을 이용하여 배열의 항목들을 순서대로 출력하는 프로그램 (0) | 2009.12.10 |
자바 배열의 선언, 생성, 이용 (0) | 2009.12.10 |