Mike Rettig created THRIFT-3868:
-----------------------------------

             Summary: Java struct equals should do identity check before field 
comparison
                 Key: THRIFT-3868
                 URL: https://issues.apache.org/jira/browse/THRIFT-3868
             Project: Thrift
          Issue Type: Improvement
          Components: Java - Compiler
    Affects Versions: 0.9.3, 0.10.0
            Reporter: Mike Rettig
            Priority: Minor


The identity check is cheap and should be done before comparing fields of a 
struct. Idiomatic equals methods always include this check especially if the 
field by field comparison can be expensive. 

Check to add:
if(that == this) return true;

1864   out << indent() << "public boolean equals(" << tstruct->get_name() << " 
that) {" << endl;
1865   indent_up();
1866   out << indent() << "if (that == null)" << endl << indent() << "  return 
false;" << endl;

INSERT IDENTITY CHECK HERE

1867 
1868   const vector<t_field*>& members = tstruct->get_members();
1869   vector<t_field*>::const_iterator m_iter;
1870   for (m_iter = members.begin(); m_iter != members.end(); ++m_iter) {
1871     out << endl;
1872 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to