CodeGym /Java Course /मॉड्यूल 3 /apache-commons-lang लायब्ररी

apache-commons-lang लायब्ररी

मॉड्यूल 3
पातळी 20 , धडा 1
उपलब्ध

क्लिष्ट equals() पद्धत

Equals पद्धत सहजपणे अंमलात आणण्यासाठी , तुम्ही 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);
}

क्लिष्ट हॅशकोड() पद्धत

हॅशकोड पद्धत अंमलात आणण्यासाठी , तुम्हाला हॅशकोडबिल्डर क्लास वापरणे आवश्यक आहे .

फील्ड निवड:

@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");
}

क्लिष्ट toString() पद्धत

अशाच प्रकारे, तुम्ही 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);
}
टिप्पण्या
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION