खोज…


समान () पद्धति को लागू करें

किसी ऑब्जेक्ट की 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);
}

बूलियन पैरामीटर इंगित करता है कि क्या बराबर क्षणिक क्षेत्रों की जांच करनी चाहिए।

कुछ क्षेत्रों से बचने के प्रतिबिंब का उपयोग करना:

@Override
public boolean equals(Object obj) {
    return EqualsBuilder.reflectionEquals(this, obj, "field1", "field2");
}

हैशकोड () पद्धति को लागू करें

लागू करने के लिए 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, लघु, आदि ...

प्रतिबिंब:

@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