DB에서 데이터를 가져와서 생성한 product.java 클래스와 임의로 만든 product.java를 객체 비교 하려 한다.
- 일단 class 정의
private String name;
private String id;
private String setName(Stirng name){
private String id;
private String setName(Stirng name){
this.name = name;
}
private String setID(String id){
private String setID(String id){
this.id = id;
}
}
Product tempProduct = new Protuct();
dbProtuct.setName("a");
dbProtuct.setID("id");
tempProduct.setName("a);
tempProduct.setID("id");
dbProduct와 tempProduct에 있는 변수 name과 id의 값은 동일한다.
처음 아이디어는
toString() 메소드를 재정의 해서 String 비교하는 방법을 사용하였다.
- 객체생성
Product tempProduct = new Protuct();
dbProtuct.setName("a");
dbProtuct.setID("id");
tempProduct.setName("a);
tempProduct.setID("id");
dbProduct와 tempProduct에 있는 변수 name과 id의 값은 동일한다.
처음 아이디어는
toString() 메소드를 재정의 해서 String 비교하는 방법을 사용하였다.
public String toString(){
return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
} |
** ToStringStyle.MULTI_LINE_STYLE 은 아래 하단 주소 참조
http://mikyung.net/category/Program?page=2
JUnit 에서
assertEquals(dbProduct.toString().equalsIgnoreCase(tempProduct.toString())를 한 결과 false가 나온다.
따라서 다른 방법으로 변경
equals를 재 정의하로 하였다.
JUnit에서
assertEquals(dbProtuct.equals(tempProduct), true)
Test 통과이다.
참고로 EqualsBuilder, StringBuilder는
apache project에 있는 commons-lang.jar 파일에 있다.
common-lang download 주소
http://commons.apache.org/lang/download_lang.cgi
완전한 소스 코드이다.
되도록이면 toString()를 재정의 하도록 하는게 좋다.
이렇게 toString()를 재정의하고 System.out.print를 하게 되면
이런 식으로 알기 쉽게 데이터를 뿌려준다.
toString() 메소드 재정의 편하게 하기.
// 디폴트
http://mikyung.net/category/Program?page=2
JUnit 에서
assertEquals(dbProduct.toString().equalsIgnoreCase(tempProduct.toString())를 한 결과 false가 나온다.
따라서 다른 방법으로 변경
equals를 재 정의하로 하였다.
}
public boolen equals(Object obj){ return EqualsBuilder.reflectionEquals(this, obj); } |
JUnit에서
assertEquals(dbProtuct.equals(tempProduct), true)
Test 통과이다.
참고로 EqualsBuilder, StringBuilder는
apache project에 있는 commons-lang.jar 파일에 있다.
common-lang download 주소
http://commons.apache.org/lang/download_lang.cgi
완전한 소스 코드이다.
package kr.or.jhpark;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
class Product{
private String name;
private String id;
public void setName(String name){
this.name = name;
}
public void setID(String id){
this.id = id;
}
public boolean equals(Object pObject) {
return EqualsBuilder.reflectionEquals(this, pObject);
}
public String toString(){
return ToStringBuilder.reflectionToString(this,ToStringStyle.MULTI_LINE_STYLE);
}
}
되도록이면 toString()를 재정의 하도록 하는게 좋다.
이렇게 toString()를 재정의하고 System.out.print를 하게 되면
kr.or.jhpark.Product@18f9b75[
id=48
name=박재혁
]이런 식으로 알기 쉽게 데이터를 뿌려준다.
toString() 메소드 재정의 편하게 하기.
// 디폴트
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
//simple style
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SIMPLE_STYLE);
}
// multi line style
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
'나는개발자다 > 기타' 카테고리의 다른 글
Slf4J 사용하기. ( slf4j, log4j ) (0) | 2011.07.20 |
---|---|
Log4J 간단 사용 정리. (2) | 2011.07.18 |
Postgresql 번호 자동 증가. (0) | 2011.06.15 |
우분투 11.04 PostgreSQL 9.X 설치하기. (1) | 2011.06.09 |
우분투 11.04 Java 설치하기 (0) | 2011.06.09 |