ToString Style.MULTI_LINE_STYLE : toString builder « Apache Common « Java Tutorial






import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;


public class MainClass {
  public static void main(String[] args) {
    //Create new BuilderTrial instances
    BuilderTrial one = new BuilderTrial("Becker", 35);
    BuilderTrial two = new BuilderTrial("Becker", 35);
    BuilderTrial three = new BuilderTrial("Agassi", 33);

    //one and two hold the same data in different objects
    //three holds different data
    System.out.println("One>>>" + one);
    System.out.println("Two>>>" + two);
    System.out.println("Three>>>" + three);

    System.out.println("one equals two? " + one.equals(two));
    System.out.println("one equals three? " + one.equals(three));

    //As one and two hold the same data, the same hashcode is returned.
    System.out.println("One HashCode>>> " + one.hashCode());
    System.out.println("Two HashCode>>> " + two.hashCode());
    System.out.println("Three HashCode>>> " + three.hashCode());
  }
}

class BuilderTrial {
  private String name;
  private int age;

  public BuilderTrial(String name, int age) {
      this.name = name;
      this.age = age;
  }

  public static void main(String[] args) {
  }

  public boolean equals(Object objCompared) {
      if (!(objCompared instanceof BuilderTrial)) {
          return false;
      }

      BuilderTrial rhs = (BuilderTrial) objCompared;

      return new EqualsBuilder().append(name, rhs.name).append(age, rhs.age)
                                .isEquals();
  }

  public String toString() {
      return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("Name",
          name).append("Age", age).toString();
  }

  public int hashCode() {
      return new HashCodeBuilder(15, 19).append(name).append(age).toHashCode();
  }
}
One>>>BuilderTrial@a981ca[
  Name=Becker
  Age=35
]
Two>>>BuilderTrial@e7b241[
  Name=Becker
  Age=35
]
Three>>>BuilderTrial@167d940[
  Name=Agassi
  Age=33
]
one equals two? true
one equals three? false
One HashCode>>> -923455822
Two HashCode>>> -923455822
Three HashCode>>> -1433293806
  Download:  CommonLangToStringStyle.MULTI_LINE_STYLE.zip( 201 k)








37.2.toString builder
37.2.1.ToStringBuilder
37.2.2.ToString Builder for Derived Class
37.2.3.ToStringBuilder.reflectionToString
37.2.4.ToString Style.MULTI_LINE_STYLE
37.2.5.Reflection to StringBuilder