title: What is the benefit of using ComparisonChain over Objects.equal() && Objects.equal() ... with Guava
body: <p>I have just started using google's Guava collection (<a href="http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ComparisonChain.html">ComparisonChain</a> and <a href="http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/base/Objects.html">Objects</a>).  In my pojo I am overiding the equals method, so I did this first:</p>
  
  <pre><code>return ComparisonChain.start()
           .compare(this.id, other.id)
           .result() == 0;
  </code></pre>
  
  <p>However, I then realized that I could also use this :</p>
  
  <pre><code>return Objects.equal(this.id, other.id);
  </code></pre>
  
  <p>And I fail to see when comparison chain would be better as you can easily add further conditions like so:</p>
  
  <pre><code>return Objects.equal(this.name, other.name) 
         &amp;&amp; Objects.equal(this.number, other.number);
  </code></pre>
  
  <p>The only benefit I can see if you specifically need an int returned. It has two extra method calls (start and result) and is more complex to a noob.  </p>
  
  <p>Are there obvious benefits of <em>ComparisonChain</em> I missing ?</p>
  
  <p>(Yes, I am also overriding hashcode with appropriate <code>Objects.hashcode()</code>)</p>