சிக்கலான சமம்() முறை
சமமான முறையை எளிதாக செயல்படுத்த , நீங்கள் EqualsBuilder வகுப்பைப் பயன்படுத்தலாம் . இது எவ்வாறு செயல்படுகிறது என்பதைக் காட்ட சில எடுத்துக்காட்டுகள் இங்கே உள்ளன.
ஒப்பிடுவதற்கு குறிப்பிட்ட புலங்களை அமைத்தல்:
public class User {
private String name;
private String email;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof User user)) return false;
return new EqualsBuilder().append(name, user.name).append(email, user.email).isEquals();
}
}
மேலும், இந்த வர்க்கம் பிரதிபலிப்பு மூலம் பொருட்களை ஒப்பிடலாம்:
@Override
public boolean equals(Object obj) {
return EqualsBuilder.reflectionEquals(this, obj);
}
சிக்கலான ஹாஷ்கோட்() முறை
ஹாஷ்கோட் முறையைச் செயல்படுத்த , நீங்கள் HashCodeBuilder வகுப்பைப் பயன்படுத்த வேண்டும் .
களத் தேர்வு:
@Override
public int hashCode() {
return new HashCodeBuilder(17, 37)
.append(name)
.append(email)
.toHashCode();
}
ஹாஷ் குறியீட்டை உருவாக்க பிரதிபலிப்பைப் பயன்படுத்துதல்:
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
We use reflection and ignore certain fields:
@Override
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this, "name");
}
String() முறைக்கு சிக்கலானது
இதேபோல், நீங்கள் toString() முறையை கூட செயல்படுத்தலாம் . மீண்டும், நாங்கள் ToStringBuilder வகுப்பைப் பயன்படுத்துகிறோம் .
புலங்கள் முந்தைய இரண்டு நிகழ்வுகளைப் போலவே அமைக்கப்பட்டுள்ளன:
@Override
public String toString() {
return new ToStringBuilder(this)
.append(name)
.append(email)
.toString();
}
முடிவு உதாரணம்:
org.example.User@4b67cf4d[name=John,email=email@email.com]
புலப் பெயர்களையும் நீங்கள் வெளிப்படையாகக் குறிப்பிடலாம்:
@Override
public String toString() {
return new ToStringBuilder(this)
.append("nameUser", name)
.append("emailUser", email)
.toString();
}
முடிவு உதாரணம்:
org.example.User@4b67cf4d[nameUser=John,emailUser=email@email.com]
அமைப்புகளைப் பயன்படுத்தி உரை நடையை மாற்றலாம்:
@Override
public String toString() {
return new ToStringBuilder(this, ToStringStyle.SHORT_PREFIX_STYLE)
.append(name)
.append(email)
.toString();
}
முடிவு உதாரணம்:
User[John,emailUser=email@email.com]
JSON, வகுப்புப்பெயர் இல்லை, குறுகிய மற்றும் பிற போன்ற பல பாணிகள் உள்ளன.
பிரதிபலிப்பைப் பயன்படுத்துதல்:
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
பிரதிபலிப்பைப் பயன்படுத்துதல் மற்றும் ஒரு குறிப்பிட்ட பாணியைக் குறிப்பிடுதல்:
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE);
}
GO TO FULL VERSION