Dict.CN 在线词典, 英语学习, 在线翻译

都市淘沙者

荔枝FM Everyone can be host

统计

留言簿(23)

积分与排名

优秀学习网站

友情连接

阅读排行榜

评论排行榜

利用ToStringBuilder 重写POJO中的toString

废话少说,直接上代码,感觉还是比较有用,貌似发现还有很多人在重写POJO的toString方法时,自己拼那些POJO属性,这个体力活还是由于ToStringBuilder来做吧。
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) {
        MyClass one 
= new MyClass("Becker"35);
        MyClass two 
= new MyClass("Becker"35);
        MyClass three 
= new MyClass("Agassi"33);

        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));

        System.out.println(
"One HashCode>>> " + one.hashCode());
        System.out.println(
"Two HashCode>>> " + two.hashCode());
        System.out.println(
"Three HashCode>>> " + three.hashCode());
    }

}


class MyClass {
    
private String name = null;
    
private int age = 0;

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


    
public boolean equals(Object obj) {
        
return EqualsBuilder.reflectionEquals(this, obj);
    }


    
public String toString() {
        
return ToStringBuilder.reflectionToString(this,
            ToStringStyle.MULTI_LINE_STYLE);
    }


    
public int hashCode() {
        
return HashCodeBuilder.reflectionHashCode(this);
    }

}


输出的结果如下:
One>>>MyClass@743399[
            name=Becker
            age=35
            ]
            Two>>>MyClass@1d8957f[
            name=Becker
            age=35
            ]
            Three>>>MyClass@3ee284[
            name=Agassi
            age=33
            ]
            one equals two? true
            one equals three? false
            One HashCode>>> 462213092
            Two HashCode>>> 462213092
            Three HashCode>>> -530629296
  Download:  CommonLangToStringBuilder.reflectionToString.zip( 200 k)

直接到 http://www.java2s.com/Tutorial/Java/0500__Apache-Common/ToStringBuilder.htm 上看看吧:)

posted on 2010-11-27 15:26 都市淘沙者 阅读(1967) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: