Jakarta Commnos lang学习 - ToStringBuilder类常用方法介绍

来源:互联网 发布:知学学院院长于鲁 编辑:程序博客网 时间:2024/05/17 06:06

http://javacrazylilin.iteye.com/blog/1142933

1、append

     ToStringBuilder类主要用于类的格式化输出。ToStringBuilder中append方法可以向该类添加基本类型、数组、和对象只有添加的方法才会被toString输出

  import java.math.BigDecimal;

Java代码  收藏代码
  1. import java.util.HashSet;  
  2. import java.util.Set;  
  3.   
  4. import java.math.BigDecimal;  
  5.   
  6. import org.apache.commons.lang.builder.CompareToBuilder;  
  7. import org.apache.commons.lang.builder.EqualsBuilder;  
  8. import org.apache.commons.lang.builder.HashCodeBuilder;  
  9. import org.apache.commons.lang.builder.ToStringBuilder;  
  10.   
  11. class TaxReturn {  
  12.   
  13.   private String ssn;  
  14.   
  15.   private int year;  
  16.   
  17.   private String lastName;  
  18.   
  19.   private BigDecimal taxableIncome;  
  20.   
  21.   public TaxReturn() {  
  22.   }  
  23.   
  24.   public TaxReturn(String pSsn, int pYear, String pLastName, BigDecimal pTaxableIncome) {  
  25.     setSsn(pSsn);  
  26.     setYear(pYear);  
  27.     setLastName(pLastName);  
  28.     setTaxableIncome(pTaxableIncome);  
  29.   }  
  30.   
  31.   public String getSsn() {  
  32.     return ssn;  
  33.   }  
  34.   
  35.   public void setSsn(String pSsn) {  
  36.     ssn = pSsn;  
  37.   }  
  38.   
  39.   public int getYear() {  
  40.     return year;  
  41.   }  
  42.   
  43.   public void setYear(int pYear) {  
  44.     year = pYear;  
  45.   }  
  46.   
  47.   public String getLastName() {  
  48.     return lastName;  
  49.   }  
  50.   
  51.   public void setLastName(String pLastName) {  
  52.     lastName = pLastName;  
  53.   }  
  54.   
  55.   public BigDecimal getTaxableIncome() {  
  56.     return taxableIncome;  
  57.   }  
  58.   
  59.   public void setTaxableIncome(BigDecimal pTaxableIncome) {  
  60.     taxableIncome = pTaxableIncome;  
  61.   }  
  62.   
  63.   public String toString() {  
  64.     return new ToStringBuilder(this).append("ssn", ssn).append("year", year).append("lastName",  
  65.         lastName).toString();  
  66.   }  
  67.   
  68.   public int hashCode() {  
  69.     return new HashCodeBuilder(37).append(ssn).append(year).toHashCode();  
  70.   }  
  71.   
  72.   public boolean equals(Object pObject) {  
  73.     boolean equals = false;  
  74.     if (pObject instanceof TaxReturn) {  
  75.       TaxReturn bean = (TaxReturn) pObject;  
  76.       equals = (new EqualsBuilder().append(ssn, bean.ssn).append(year, bean.year)).isEquals();  
  77.     }  
  78.     return equals;  
  79.   }  
  80.   
  81.   public int compareTo(Object pObject) {  
  82.     return CompareToBuilder.reflectionCompare(this, pObject);  
  83.   }  
  84.   
  85. }  
  86.   
  87. public class MainClass {  
  88.   
  89.   public static void main(String[] pArgs) throws Exception {  
  90.      TaxReturn return1 = new TaxReturn("012-68-3242"1998"O'Brien"new BigDecimal(43000.00));  
  91.      TaxReturn return2 = new TaxReturn("012-68-3242"1999"O'Brien"new BigDecimal(45000.00));  
  92.      TaxReturn return3 = new TaxReturn("012-68-3242"1999"O'Brien"new BigDecimal(53222.00));  
  93.      System.out.println("ToStringBuilder: " + return1.toString());  
  94.   }  
  95. }  

运行结果如下:

   ToStringBuilder: TaxReturn@1503a3[ssn=012-68-3242,year=1998,lastName=O'Brien]

 

2、reflectionToString

     把类对应的基本属性和值输出来。

 import org.apache.commons.lang.builder.EqualsBuilder;

Java代码  收藏代码
  1. import org.apache.commons.lang.builder.HashCodeBuilder;  
  2. import org.apache.commons.lang.builder.ToStringBuilder;  
  3. import org.apache.commons.lang.builder.ToStringStyle;  
  4.   
  5. public class MainClass {  
  6.     public static void main(String[] args) {  
  7.         MyClass one = new MyClass("Becker"35);  
  8.         MyClass two = new MyClass("Becker"35);  
  9.         MyClass three = new MyClass("Agassi"33);  
  10.   
  11.         System.out.println("One>>>" + one);  
  12.         System.out.println("Two>>>" + two);  
  13.         System.out.println("Three>>>" + three);  
  14.   
  15.         System.out.println("one equals two? " + one.equals(two));  
  16.         System.out.println("one equals three? " + one.equals(three));  
  17.   
  18.         System.out.println("One HashCode>>> " + one.hashCode());  
  19.         System.out.println("Two HashCode>>> " + two.hashCode());  
  20.         System.out.println("Three HashCode>>> " + three.hashCode());  
  21.     }  
  22. }  
  23.   
  24. class MyClass {  
  25.     private String name = null;  
  26.     private int age = 0;  
  27.   
  28.     public MyClass(String name, int age) {  
  29.         this.name = name;  
  30.         this.age = age;  
  31.     }  
  32.   
  33.     public boolean equals(Object obj) {  
  34.         return EqualsBuilder.reflectionEquals(this, obj);  
  35.     }  
  36.   
  37.     public String toString() {  
  38.         return ToStringBuilder.reflectionToString(this,  
  39.             ToStringStyle.MULTI_LINE_STYLE);  
  40.     }  
  41.   
  42.     public int hashCode() {  
  43.         return HashCodeBuilder.reflectionHashCode(this);  
  44.     }  
  45. }  

 运行结果如下:


Java代码  收藏代码
  1. One>>>MyClass@743399[  
  2.   name=Becker  
  3.   age=35  
  4. ]  
  5. Two>>>MyClass@1d8957f[  
  6.   name=Becker  
  7.   age=35  
  8. ]  
  9. Three>>>MyClass@3ee284[  
  10.   name=Agassi  
  11.   age=33  
  12. ]  
  13. one equals two? true  
  14. one equals three? false  
  15. One HashCode>>> 462213092  
  16. Two HashCode>>> 462213092  
  17. Three HashCode>>> -530629296  





原创粉丝点击