equals
<code>1</code>
<code>objects.equal(</code><code>"a"</code><code>, </code><code>"a"</code><code>); </code><code>// returns true</code>
<code>2</code>
<code>objects.equal(</code><code>null</code><code>, </code><code>"a"</code><code>); </code><code>// returns false</code>
<code>3</code>
<code>objects.equal(</code><code>"a"</code><code>, </code><code>null</code><code>); </code><code>// returns false</code>
<code>4</code>
<code>objects.equal(</code><code>null</code><code>, </code><code>null</code><code>); </code><code>// returns true</code>
hashcode
tostring
<code>// returns "classname{x=1}"</code>
<code>objects.tostringhelper(</code><code>this</code><code>).add(</code><code>"x"</code><code>, </code><code>1</code><code>).tostring();</code>
<code>// returns "myobject{x=1}"</code>
<code>objects.tostringhelper(</code><code>"myobject"</code><code>).add(</code><code>"x"</code><code>, </code><code>1</code><code>).tostring();</code>
compare/compareto
实现一个比较器[comparator],或者直接实现comparable接口有时也伤不起。考虑一下这种情况:
<code>01</code>
<code>class</code> <code>person </code><code>implements</code> <code>comparable<person> {</code>
<code>02</code>
<code> </code><code>private</code> <code>string lastname;</code>
<code>03</code>
<code> </code><code>private</code> <code>string firstname;</code>
<code>04</code>
<code> </code><code>private</code> <code>int</code> <code>zipcode;</code>
<code>05</code>
<code>06</code>
<code> </code><code>public</code> <code>int</code> <code>compareto(person other) {</code>
<code>07</code>
<code> </code><code>int</code> <code>cmp = lastname.compareto(other.lastname);</code>
<code>08</code>
<code> </code><code>if</code> <code>(cmp != </code><code>0</code><code>) {</code>
<code>09</code>
<code> </code><code>return</code> <code>cmp;</code>
<code>10</code>
<code> </code><code>}</code>
<code>11</code>
<code> </code><code>cmp = firstname.compareto(other.firstname);</code>
<code>12</code>
<code>13</code>
<code>14</code>
<code>15</code>
<code> </code><code>return</code> <code>integer.compare(zipcode, other.zipcode);</code>
<code>16</code>
<code> </code><code>}</code>
<code>17</code>
<code>}</code>
comparisonchain执行一种懒比较:它执行比较操作直至发现非零的结果,在那之后的比较输入将被忽略。
<code>public</code> <code>int</code> <code>compareto(foo that) {</code>
<code> </code><code>return</code> <code>comparisonchain.start()</code>
<code> </code><code>.compare(</code><code>this</code><code>.astring, that.astring)</code>
<code> </code><code>.compare(</code><code>this</code><code>.anint, that.anint)</code>
<code>5</code>
<code> </code><code>.compare(</code><code>this</code><code>.anenum, that.anenum, ordering.natural().nullslast())</code>
<code>6</code>
<code> </code><code>.result();</code>
<code>7</code>