<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FApache_Common%2FtoString_builder</id>
		<title>Java Tutorial/Apache Common/toString builder - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FApache_Common%2FtoString_builder"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Apache_Common/toString_builder&amp;action=history"/>
		<updated>2026-04-22T06:10:54Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Apache_Common/toString_builder&amp;diff=5232&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Apache_Common/toString_builder&amp;diff=5232&amp;oldid=prev"/>
				<updated>2010-06-01T05:18:52Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 05:18, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/Apache_Common/toString_builder&amp;diff=5231&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/Apache_Common/toString_builder&amp;diff=5231&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Reflection to StringBuilder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 * &lt;br /&gt;
 * Copyright 2005 Tim O&amp;quot;Brien.&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 * you may not use this file except in compliance with the License.&lt;br /&gt;
 * You may obtain a copy of the License at&lt;br /&gt;
 * &lt;br /&gt;
 *   http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 * &lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 * &lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 */&lt;br /&gt;
import org.apache.rumons.lang.builder.rupareToBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.EqualsBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.HashCodeBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ReflectionToStringBuilder;&lt;br /&gt;
class BuilderBean implements Comparable {&lt;br /&gt;
  private String prop1;&lt;br /&gt;
  private String prop2;&lt;br /&gt;
  public String getProp1() {&lt;br /&gt;
    return prop1;&lt;br /&gt;
  }&lt;br /&gt;
  public void setProp1(String pProp1) {&lt;br /&gt;
    prop1 = pProp1;&lt;br /&gt;
  }&lt;br /&gt;
  public String getProp2() {&lt;br /&gt;
    return prop2;&lt;br /&gt;
  }&lt;br /&gt;
  public void setProp2(String pProp2) {&lt;br /&gt;
    prop2 = pProp2;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return ReflectionToStringBuilder.toString(this);&lt;br /&gt;
  }&lt;br /&gt;
  public boolean equals(Object pObject) {&lt;br /&gt;
    return EqualsBuilder.reflectionEquals(this, pObject);&lt;br /&gt;
  }&lt;br /&gt;
  public int compareTo(Object pObject) {&lt;br /&gt;
    return CompareToBuilder.reflectionCompare(this, pObject);&lt;br /&gt;
  }&lt;br /&gt;
  public int hashCode() {&lt;br /&gt;
    return HashCodeBuilder.reflectionHashCode(this);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] pArgs) throws Exception {&lt;br /&gt;
    // Builder and Builder2 contain the same content&lt;br /&gt;
    BuilderBean builder = new BuilderBean();&lt;br /&gt;
    builder.setProp1(&amp;quot;One&amp;quot;);&lt;br /&gt;
    builder.setProp2(&amp;quot;Two&amp;quot;);&lt;br /&gt;
    BuilderBean builder2 = new BuilderBean();&lt;br /&gt;
    builder2.setProp1(&amp;quot;One&amp;quot;);&lt;br /&gt;
    builder2.setProp2(&amp;quot;Two&amp;quot;);&lt;br /&gt;
    BuilderBean builder3 = new BuilderBean();&lt;br /&gt;
    builder3.setProp1(&amp;quot;Uno&amp;quot;);&lt;br /&gt;
    builder3.setProp2(&amp;quot;Dos&amp;quot;);&lt;br /&gt;
    System.out.println(&amp;quot;ToStringBuilder: &amp;quot; + builder.toString());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;ToStringBuilder: BuilderBean@743399[prop1=One,prop2=Two]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ToStringBuilder ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 * &lt;br /&gt;
 * Copyright 2005 Tim O&amp;quot;Brien.&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 * you may not use this file except in compliance with the License.&lt;br /&gt;
 * You may obtain a copy of the License at&lt;br /&gt;
 * &lt;br /&gt;
 *   http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 * &lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 * &lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 */&lt;br /&gt;
import java.math.BigDecimal;&lt;br /&gt;
import java.util.HashSet;&lt;br /&gt;
import java.util.Set;&lt;br /&gt;
import java.math.BigDecimal;&lt;br /&gt;
import org.apache.rumons.lang.builder.rupareToBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.EqualsBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.HashCodeBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringBuilder;&lt;br /&gt;
class TaxReturn {&lt;br /&gt;
  private String ssn;&lt;br /&gt;
  private int year;&lt;br /&gt;
  private String lastName;&lt;br /&gt;
  private BigDecimal taxableIncome;&lt;br /&gt;
  public TaxReturn() {&lt;br /&gt;
  }&lt;br /&gt;
  public TaxReturn(String pSsn, int pYear, String pLastName, BigDecimal pTaxableIncome) {&lt;br /&gt;
    setSsn(pSsn);&lt;br /&gt;
    setYear(pYear);&lt;br /&gt;
    setLastName(pLastName);&lt;br /&gt;
    setTaxableIncome(pTaxableIncome);&lt;br /&gt;
  }&lt;br /&gt;
  public String getSsn() {&lt;br /&gt;
    return ssn;&lt;br /&gt;
  }&lt;br /&gt;
  public void setSsn(String pSsn) {&lt;br /&gt;
    ssn = pSsn;&lt;br /&gt;
  }&lt;br /&gt;
  public int getYear() {&lt;br /&gt;
    return year;&lt;br /&gt;
  }&lt;br /&gt;
  public void setYear(int pYear) {&lt;br /&gt;
    year = pYear;&lt;br /&gt;
  }&lt;br /&gt;
  public String getLastName() {&lt;br /&gt;
    return lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setLastName(String pLastName) {&lt;br /&gt;
    lastName = pLastName;&lt;br /&gt;
  }&lt;br /&gt;
  public BigDecimal getTaxableIncome() {&lt;br /&gt;
    return taxableIncome;&lt;br /&gt;
  }&lt;br /&gt;
  public void setTaxableIncome(BigDecimal pTaxableIncome) {&lt;br /&gt;
    taxableIncome = pTaxableIncome;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return new ToStringBuilder(this).append(&amp;quot;ssn&amp;quot;, ssn).append(&amp;quot;year&amp;quot;, year).append(&amp;quot;lastName&amp;quot;,&lt;br /&gt;
        lastName).toString();&lt;br /&gt;
  }&lt;br /&gt;
  public int hashCode() {&lt;br /&gt;
    return new HashCodeBuilder(3, 7).append(ssn).append(year).toHashCode();&lt;br /&gt;
  }&lt;br /&gt;
  public boolean equals(Object pObject) {&lt;br /&gt;
    boolean equals = false;&lt;br /&gt;
    if (pObject instanceof TaxReturn) {&lt;br /&gt;
      TaxReturn bean = (TaxReturn) pObject;&lt;br /&gt;
      equals = (new EqualsBuilder().append(ssn, bean.ssn).append(year, bean.year)).isEquals();&lt;br /&gt;
    }&lt;br /&gt;
    return equals;&lt;br /&gt;
  }&lt;br /&gt;
  public int compareTo(Object pObject) {&lt;br /&gt;
    return CompareToBuilder.reflectionCompare(this, pObject);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] pArgs) throws Exception {&lt;br /&gt;
     TaxReturn return1 = new TaxReturn(&amp;quot;012-68-3242&amp;quot;, 1998, &amp;quot;O&amp;quot;Brien&amp;quot;, new BigDecimal(43000.00));&lt;br /&gt;
     TaxReturn return2 = new TaxReturn(&amp;quot;012-68-3242&amp;quot;, 1999, &amp;quot;O&amp;quot;Brien&amp;quot;, new BigDecimal(45000.00));&lt;br /&gt;
     TaxReturn return3 = new TaxReturn(&amp;quot;012-68-3242&amp;quot;, 1999, &amp;quot;O&amp;quot;Brien&amp;quot;, new BigDecimal(53222.00));&lt;br /&gt;
     System.out.println(&amp;quot;ToStringBuilder: &amp;quot; + return1.toString());&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;ToStringBuilder: TaxReturn@1503a3[ssn=012-68-3242,year=1998,lastName=O&amp;quot;Brien]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ToString Builder for Derived Class ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/* &lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 * &lt;br /&gt;
 * Copyright 2005 Tim O&amp;quot;Brien.&lt;br /&gt;
 *&lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;);&lt;br /&gt;
 * you may not use this file except in compliance with the License.&lt;br /&gt;
 * You may obtain a copy of the License at&lt;br /&gt;
 * &lt;br /&gt;
 *   http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 * &lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS,&lt;br /&gt;
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&lt;br /&gt;
 * See the License for the specific language governing permissions and&lt;br /&gt;
 * limitations under the License.&lt;br /&gt;
 * &lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 */&lt;br /&gt;
import java.math.BigDecimal;&lt;br /&gt;
import java.util.Calendar;&lt;br /&gt;
import java.util.Date;&lt;br /&gt;
import java.util.GregorianCalendar;&lt;br /&gt;
import org.apache.rumons.lang.builder.rupareToBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ReflectionToStringBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringStyle;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] pArgs) throws Exception {&lt;br /&gt;
    // Create a State&lt;br /&gt;
    State va = new State(&amp;quot;VA&amp;quot;, &amp;quot;Virginia&amp;quot;);&lt;br /&gt;
    // Create a Birth Date&lt;br /&gt;
    Calendar calendar = new GregorianCalendar();&lt;br /&gt;
    calendar.set(Calendar.YEAR, 1743);&lt;br /&gt;
    calendar.set(Calendar.MONTH, Calendar.APRIL);&lt;br /&gt;
    calendar.set(Calendar.DAY_OF_MONTH, 13);&lt;br /&gt;
    Date dob = calendar.getTime();&lt;br /&gt;
    BigDecimal moneyRaised = new BigDecimal(293829292.93);&lt;br /&gt;
    // Create a Political Candidate&lt;br /&gt;
    PoliticalCandidate candidate = new PoliticalCandidate(&amp;quot;Jefferson&amp;quot;, &amp;quot;Thomas&amp;quot;, dob, moneyRaised,&lt;br /&gt;
        va);&lt;br /&gt;
    System.out.println(candidate);&lt;br /&gt;
    // Create a Political Candidate&lt;br /&gt;
    PoliticalCandidate candidate2 = new PoliticalCandidate(&amp;quot;Jefferson&amp;quot;, &amp;quot;Martha&amp;quot;, null, null, null);&lt;br /&gt;
    // Create a Political Candidate&lt;br /&gt;
    PoliticalCandidate candidate3 = new PoliticalCandidate(&amp;quot;Jefferson&amp;quot;, &amp;quot;Martha&amp;quot;, dob, null, va);&lt;br /&gt;
    System.out.println(&amp;quot;Two Jeffersons are still different (should be &amp;gt; 0): &amp;quot;&lt;br /&gt;
        + candidate.rupareTo(candidate2));&lt;br /&gt;
    System.out.println(&amp;quot;Two Jeffersons are still different (should be &amp;lt; 0): &amp;quot;&lt;br /&gt;
        + candidate2.rupareTo(candidate));&lt;br /&gt;
    System.out.println(&amp;quot;Two Martha Js are the same (should be zero): &amp;quot;&lt;br /&gt;
        + candidate2.rupareTo(candidate3));&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class State {&lt;br /&gt;
  private String abbreviation;&lt;br /&gt;
  private String name;&lt;br /&gt;
  public State() {&lt;br /&gt;
  }&lt;br /&gt;
  public State(String abbreviation, String name) {&lt;br /&gt;
    this.abbreviation = abbreviation;&lt;br /&gt;
    this.name = name;&lt;br /&gt;
  }&lt;br /&gt;
  public String getAbbreviation() {&lt;br /&gt;
    return abbreviation;&lt;br /&gt;
  }&lt;br /&gt;
  public void setAbbreviation(String abbreviation) {&lt;br /&gt;
    this.abbreviation = abbreviation;&lt;br /&gt;
  }&lt;br /&gt;
  public String getName() {&lt;br /&gt;
    return name;&lt;br /&gt;
  }&lt;br /&gt;
  public void setName(String name) {&lt;br /&gt;
    this.name = name;&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return ReflectionToStringBuilder.reflectionToString(this);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/*&lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 * &lt;br /&gt;
 * Copyright 2005 Tim O&amp;quot;Brien.&lt;br /&gt;
 * &lt;br /&gt;
 * Licensed under the Apache License, Version 2.0 (the &amp;quot;License&amp;quot;); you may not&lt;br /&gt;
 * use this file except in compliance with the License. You may obtain a copy of&lt;br /&gt;
 * the License at&lt;br /&gt;
 * &lt;br /&gt;
 * http://www.apache.org/licenses/LICENSE-2.0&lt;br /&gt;
 * &lt;br /&gt;
 * Unless required by applicable law or agreed to in writing, software&lt;br /&gt;
 * distributed under the License is distributed on an &amp;quot;AS IS&amp;quot; BASIS, WITHOUT&lt;br /&gt;
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the&lt;br /&gt;
 * License for the specific language governing permissions and limitations under&lt;br /&gt;
 * the License.&lt;br /&gt;
 * &lt;br /&gt;
 * ========================================================================&lt;br /&gt;
 */&lt;br /&gt;
class PoliticalCandidate implements Comparable {&lt;br /&gt;
  private String lastName;&lt;br /&gt;
  private String firstName;&lt;br /&gt;
  private Date dateOfBirth;&lt;br /&gt;
  private BigDecimal moneyRaised;&lt;br /&gt;
  private State state;&lt;br /&gt;
  public PoliticalCandidate() {&lt;br /&gt;
  }&lt;br /&gt;
  public PoliticalCandidate(String lastName, String firstName, Date dateOfBirth,&lt;br /&gt;
      BigDecimal moneyRaised, State state) {&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
    this.dateOfBirth = dateOfBirth;&lt;br /&gt;
    this.moneyRaised = moneyRaised;&lt;br /&gt;
    this.state = state;&lt;br /&gt;
  }&lt;br /&gt;
  public String getLastName() {&lt;br /&gt;
    return lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setLastName(String lastName) {&lt;br /&gt;
    this.lastName = lastName;&lt;br /&gt;
  }&lt;br /&gt;
  public String getFirstName() {&lt;br /&gt;
    return firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public void setFirstName(String firstName) {&lt;br /&gt;
    this.firstName = firstName;&lt;br /&gt;
  }&lt;br /&gt;
  public Date getDateOfBirth() {&lt;br /&gt;
    return dateOfBirth;&lt;br /&gt;
  }&lt;br /&gt;
  public void setDateOfBirth(Date dateOfBirth) {&lt;br /&gt;
    this.dateOfBirth = dateOfBirth;&lt;br /&gt;
  }&lt;br /&gt;
  public BigDecimal getMoneyRaised() {&lt;br /&gt;
    return moneyRaised;&lt;br /&gt;
  }&lt;br /&gt;
  public void setMoneyRaised(BigDecimal moneyRaised) {&lt;br /&gt;
    this.moneyRaised = moneyRaised;&lt;br /&gt;
  }&lt;br /&gt;
  public State getState() {&lt;br /&gt;
    return state;&lt;br /&gt;
  }&lt;br /&gt;
  public void setState(State state) {&lt;br /&gt;
    this.state = state;&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
   * public String toString() { return&lt;br /&gt;
   * ReflectionToStringBuilder.reflectionToString(this); }&lt;br /&gt;
   */&lt;br /&gt;
  /*&lt;br /&gt;
   * // get/set methods are omitted for brevity... public String toString() {&lt;br /&gt;
   * return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) .append(&lt;br /&gt;
   * &amp;quot;lastName&amp;quot;, lastName ) .append( &amp;quot;firstName&amp;quot;, firstName ) .toString(); }&lt;br /&gt;
   */&lt;br /&gt;
  /*&lt;br /&gt;
   * // get/set methods are omitted for brevity... public String toString() {&lt;br /&gt;
   * return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE) .append(&lt;br /&gt;
   * &amp;quot;lastName&amp;quot;, lastName ) .append( &amp;quot;firstName&amp;quot;, firstName ) .toString(); }&lt;br /&gt;
   */&lt;br /&gt;
  /*&lt;br /&gt;
   * // get/set methods are omitted for brevity... public String toString() {&lt;br /&gt;
   * return new ToStringBuilder(this, ToStringStyle.NO_FIELD_NAMES_STYLE)&lt;br /&gt;
   * .append( &amp;quot;lastName&amp;quot;, lastName ) .append( &amp;quot;firstName&amp;quot;, firstName )&lt;br /&gt;
   * .toString(); }&lt;br /&gt;
   */&lt;br /&gt;
  // get/set methods are omitted for brevity...&lt;br /&gt;
  public String toString() {&lt;br /&gt;
    return new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE).append(&amp;quot;lastName&amp;quot;, lastName)&lt;br /&gt;
        .append(&amp;quot;firstName&amp;quot;, firstName).toString();&lt;br /&gt;
  }&lt;br /&gt;
  /*&lt;br /&gt;
   * (non-Javadoc)&lt;br /&gt;
   * &lt;br /&gt;
   * @see java.lang.ruparable#compareTo(java.lang.Object)&lt;br /&gt;
   */&lt;br /&gt;
  // A compare to which mimics the behavior of equals()&lt;br /&gt;
  public int compareTo(Object o) {&lt;br /&gt;
    int compare = -1; // By default return less-than&lt;br /&gt;
    if (o != null &amp;amp;&amp;amp; PoliticalCandidate.class.isAssignableFrom(o.getClass())) {&lt;br /&gt;
      PoliticalCandidate pc = (PoliticalCandidate) o;&lt;br /&gt;
      compare = (new CompareToBuilder().append(firstName, pc.firstName).append(lastName,&lt;br /&gt;
          pc.lastName)).toComparison();&lt;br /&gt;
    }&lt;br /&gt;
    return compare;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;Jefferson,Thomas&lt;br /&gt;
Two Jeffersons are still different (should be &amp;gt; 0): 7&lt;br /&gt;
Two Jeffersons are still different (should be &amp;lt; 0): -7&lt;br /&gt;
Two Martha Js are the same (should be zero): 0&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ToStringBuilder.reflectionToString ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.apache.rumons.lang.builder.EqualsBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.HashCodeBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringStyle;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        MyClass one = new MyClass(&amp;quot;Becker&amp;quot;, 35);&lt;br /&gt;
        MyClass two = new MyClass(&amp;quot;Becker&amp;quot;, 35);&lt;br /&gt;
        MyClass three = new MyClass(&amp;quot;Agassi&amp;quot;, 33);&lt;br /&gt;
        System.out.println(&amp;quot;One&amp;gt;&amp;gt;&amp;gt;&amp;quot; + one);&lt;br /&gt;
        System.out.println(&amp;quot;Two&amp;gt;&amp;gt;&amp;gt;&amp;quot; + two);&lt;br /&gt;
        System.out.println(&amp;quot;Three&amp;gt;&amp;gt;&amp;gt;&amp;quot; + three);&lt;br /&gt;
        System.out.println(&amp;quot;one equals two? &amp;quot; + one.equals(two));&lt;br /&gt;
        System.out.println(&amp;quot;one equals three? &amp;quot; + one.equals(three));&lt;br /&gt;
        System.out.println(&amp;quot;One HashCode&amp;gt;&amp;gt;&amp;gt; &amp;quot; + one.hashCode());&lt;br /&gt;
        System.out.println(&amp;quot;Two HashCode&amp;gt;&amp;gt;&amp;gt; &amp;quot; + two.hashCode());&lt;br /&gt;
        System.out.println(&amp;quot;Three HashCode&amp;gt;&amp;gt;&amp;gt; &amp;quot; + three.hashCode());&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
class MyClass {&lt;br /&gt;
    private String name = null;&lt;br /&gt;
    private int age = 0;&lt;br /&gt;
    public MyClass(String name, int age) {&lt;br /&gt;
        this.name = name;&lt;br /&gt;
        this.age = age;&lt;br /&gt;
    }&lt;br /&gt;
    public boolean equals(Object obj) {&lt;br /&gt;
        return EqualsBuilder.reflectionEquals(this, obj);&lt;br /&gt;
    }&lt;br /&gt;
    public String toString() {&lt;br /&gt;
        return ToStringBuilder.reflectionToString(this,&lt;br /&gt;
            ToStringStyle.MULTI_LINE_STYLE);&lt;br /&gt;
    }&lt;br /&gt;
    public int hashCode() {&lt;br /&gt;
        return HashCodeBuilder.reflectionHashCode(this);&lt;br /&gt;
    }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;One&amp;gt;&amp;gt;&amp;gt;MyClass@743399[&lt;br /&gt;
  name=Becker&lt;br /&gt;
  age=35&lt;br /&gt;
]&lt;br /&gt;
Two&amp;gt;&amp;gt;&amp;gt;MyClass@1d8957f[&lt;br /&gt;
  name=Becker&lt;br /&gt;
  age=35&lt;br /&gt;
]&lt;br /&gt;
Three&amp;gt;&amp;gt;&amp;gt;MyClass@3ee284[&lt;br /&gt;
  name=Agassi&lt;br /&gt;
  age=33&lt;br /&gt;
]&lt;br /&gt;
one equals two? true&lt;br /&gt;
one equals three? false&lt;br /&gt;
One HashCode&amp;gt;&amp;gt;&amp;gt; 462213092&lt;br /&gt;
Two HashCode&amp;gt;&amp;gt;&amp;gt; 462213092&lt;br /&gt;
Three HashCode&amp;gt;&amp;gt;&amp;gt; -530629296&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  ToString Style.MULTI_LINE_STYLE ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.apache.rumons.lang.builder.EqualsBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.HashCodeBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringBuilder;&lt;br /&gt;
import org.apache.rumons.lang.builder.ToStringStyle;&lt;br /&gt;
&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    //Create new BuilderTrial instances&lt;br /&gt;
    BuilderTrial one = new BuilderTrial(&amp;quot;Becker&amp;quot;, 35);&lt;br /&gt;
    BuilderTrial two = new BuilderTrial(&amp;quot;Becker&amp;quot;, 35);&lt;br /&gt;
    BuilderTrial three = new BuilderTrial(&amp;quot;Agassi&amp;quot;, 33);&lt;br /&gt;
    //one and two hold the same data in different objects&lt;br /&gt;
    //three holds different data&lt;br /&gt;
    System.out.println(&amp;quot;One&amp;gt;&amp;gt;&amp;gt;&amp;quot; + one);&lt;br /&gt;
    System.out.println(&amp;quot;Two&amp;gt;&amp;gt;&amp;gt;&amp;quot; + two);&lt;br /&gt;
    System.out.println(&amp;quot;Three&amp;gt;&amp;gt;&amp;gt;&amp;quot; + three);&lt;br /&gt;
    System.out.println(&amp;quot;one equals two? &amp;quot; + one.equals(two));&lt;br /&gt;
    System.out.println(&amp;quot;one equals three? &amp;quot; + one.equals(three));&lt;br /&gt;
    //As one and two hold the same data, the same hashcode is returned.&lt;br /&gt;
    System.out.println(&amp;quot;One HashCode&amp;gt;&amp;gt;&amp;gt; &amp;quot; + one.hashCode());&lt;br /&gt;
    System.out.println(&amp;quot;Two HashCode&amp;gt;&amp;gt;&amp;gt; &amp;quot; + two.hashCode());&lt;br /&gt;
    System.out.println(&amp;quot;Three HashCode&amp;gt;&amp;gt;&amp;gt; &amp;quot; + three.hashCode());&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
class BuilderTrial {&lt;br /&gt;
  private String name;&lt;br /&gt;
  private int age;&lt;br /&gt;
  public BuilderTrial(String name, int age) {&lt;br /&gt;
      this.name = name;&lt;br /&gt;
      this.age = age;&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
  }&lt;br /&gt;
  public boolean equals(Object objCompared) {&lt;br /&gt;
      if (!(objCompared instanceof BuilderTrial)) {&lt;br /&gt;
          return false;&lt;br /&gt;
      }&lt;br /&gt;
      BuilderTrial rhs = (BuilderTrial) objCompared;&lt;br /&gt;
      return new EqualsBuilder().append(name, rhs.name).append(age, rhs.age)&lt;br /&gt;
                                .isEquals();&lt;br /&gt;
  }&lt;br /&gt;
  public String toString() {&lt;br /&gt;
      return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append(&amp;quot;Name&amp;quot;,&lt;br /&gt;
          name).append(&amp;quot;Age&amp;quot;, age).toString();&lt;br /&gt;
  }&lt;br /&gt;
  public int hashCode() {&lt;br /&gt;
      return new HashCodeBuilder(15, 19).append(name).append(age).toHashCode();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;One&amp;gt;&amp;gt;&amp;gt;BuilderTrial@a981ca[&lt;br /&gt;
  Name=Becker&lt;br /&gt;
  Age=35&lt;br /&gt;
]&lt;br /&gt;
Two&amp;gt;&amp;gt;&amp;gt;BuilderTrial@e7b241[&lt;br /&gt;
  Name=Becker&lt;br /&gt;
  Age=35&lt;br /&gt;
]&lt;br /&gt;
Three&amp;gt;&amp;gt;&amp;gt;BuilderTrial@167d940[&lt;br /&gt;
  Name=Agassi&lt;br /&gt;
  Age=33&lt;br /&gt;
]&lt;br /&gt;
one equals two? true&lt;br /&gt;
one equals three? false&lt;br /&gt;
One HashCode&amp;gt;&amp;gt;&amp;gt; -923455822&lt;br /&gt;
Two HashCode&amp;gt;&amp;gt;&amp;gt; -923455822&lt;br /&gt;
Three HashCode&amp;gt;&amp;gt;&amp;gt; -1433293806&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>