Java Language
아파치 커먼즈 랭
수색…
equals () 메소드 구현
객체의 equals
메소드를 쉽게 구현하려면 EqualsBuilder
클래스를 사용할 수 있습니다.
필드 선택 :
@Override
public boolean equals(Object obj) {
if(!(obj instanceof MyClass)) {
return false;
}
MyClass theOther = (MyClass) obj;
EqualsBuilder builder = new EqualsBuilder();
builder.append(field1, theOther.field1);
builder.append(field2, theOther.field2);
builder.append(field3, theOther.field3);
return builder.isEquals();
}
리플렉션 사용 :
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj, false);
}
boolean 파라미터는, equals가 일시적 필드를 체크할지 어떨지를 나타냅니다.
반사를 사용하여 일부 입력란 사용 안 함 :
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj, "field1", "field2");
}
hashCode () 메소드 구현
객체의 hashCode
메소드를 쉽게 구현하려면 HashCodeBuilder
클래스를 사용할 수 있습니다.
필드 선택 :
@Override
public int hashCode() {
HashCodeBuilder builder = new HashCodeBuilder();
builder.append(field1);
builder.append(field2);
builder.append(field3);
return builder.hashCode();
}
리플렉션 사용 :
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this, false);
}
부울 매개 변수는 일시적인 필드를 사용해야하는지 여부를 나타냅니다.
반사를 사용하여 일부 입력란 사용 안 함 :
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this, "field1", "field2");
}
toString () 메서드 구현
toString
메서드를 쉽게 구현하려면 ToStringBuilder
클래스를 사용하면됩니다.
필드 선택 :
@Override
public String toString() {
ToStringBuilder builder = new ToStringBuilder(this);
builder.append(field1);
builder.append(field2);
builder.append(field3);
return builder.toString();
}
예제 결과 :
ar.com.jonat.lang.MyClass@dd7123[<null>,0,false]
필드에 명시 적으로 이름 지정 :
@Override
public String toString() {
ToStringBuilder builder = new ToStringBuilder(this);
builder.append("field1",field1);
builder.append("field2",field2);
builder.append("field3",field3);
return builder.toString();
}
예제 결과 :
ar.com.jonat.lang.MyClass@dd7404[field1=<null>,field2=0,field3=false]
매개 변수를 통해 스타일을 변경할 수 있습니다.
@Override
public String toString() {
ToStringBuilder builder = new ToStringBuilder(this,
ToStringStyle.MULTI_LINE_STYLE);
builder.append("field1", field1);
builder.append("field2", field2);
builder.append("field3", field3);
return builder.toString();
}
예제 결과 :
ar.com.bna.lang.MyClass@ebbf5c[
field1=<null>
field2=0
field3=false
]
JSON, Classname, short 등의 스타일이 있습니다.
리플렉션을 통해 :
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
스타일을 지정할 수도 있습니다.
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.JSON_STYLE);
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow