隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊(cè)

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827240
          • 排名 - 49

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          在建立實(shí)體對(duì)象之前,可以先實(shí)現(xiàn)一個(gè)公共的實(shí)體對(duì)象基類.在這個(gè)基類對(duì)象中可以包含代表每一個(gè)實(shí)體對(duì)象唯一的
          標(biāo)識(shí) id 屬性,以及一些公用的方法.具體如下

          BaseModel.java

          import java.io.Serializable;

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

          public class BaseModel implements Serializable{

           /**
            * The Generated SerialVersionUID
            */
           private static final long serialVersionUID = 7766184319541530720L;
           
           /**
            * The identify of the object
            */
           private String id;

           public String getId() {
            return id;
           }

           public void setId(String id) {
            this.id = id;
           }
           
           /**
            * Common implement equals method
            */
           public boolean equals( Object obj )
           {
            if( this==obj ) return true;
            
            if( !( obj instanceof BaseModel ) )
             return false;
            
            BaseModel target = (BaseModel)obj;
            
            if( this.getId()!=null && this.getId().length()>0 )
            {
             return this.getId().equals( target.getId() );
            }
            
            if( target.getId()!=null && target.getId().length()>0 )
            {
             return false;
            }
            
            return EqualsBuilder.reflectionEquals(this, obj);
           }

           /**
            * Generate the hash code
            */
           public int hashCode()
           {
            if( this.getId()!=null && this.getId().length()>0 )
            {
             return this.getId().hashCode();
            }
             
            return HashCodeBuilder.reflectionHashCode(this);
           }

           /**
            * Common implement toString method
            */
           public String toString()
           {
            return ReflectionToStringBuilder.toString( this );
           }
          }
                   equals()方法,用于判斷兩個(gè)對(duì)象是否相等,但并不是在使用"=="進(jìn)行兩個(gè)對(duì)象是否相等的判斷時(shí)調(diào)用.因?yàn)槭褂?=="所判斷的是兩個(gè)對(duì)象的引用是否相等,也可以簡(jiǎn)單理解為兩個(gè)實(shí)例所引用的是否為內(nèi)存中的同一個(gè)對(duì)象.equals()方法可以理解為兩個(gè)對(duì)象在"含義"上是否相等,也就是說(shuō)這兩個(gè)對(duì)象所表達(dá)的意思是否相同.equals()方法在對(duì)象保存到集合容器類(Collection)中時(shí)被調(diào)用.因?yàn)榧先萜黝惒辉试S其中存在兩個(gè)相同對(duì)象實(shí)例,其判斷的依據(jù)就是通過(guò)調(diào)用該實(shí)體對(duì)象的equals()方法來(lái)進(jìn)行判斷的.
                   如果修改了equals()方法,就必須修改hashCode()方法.如果不這樣的話,就違反java.lang.Object的通用的hashCode的約定,從而導(dǎo)致該類無(wú)法與基于散列值的集合類一起正常工作.
                   toString()方法,用于將當(dāng)前Java對(duì)象的實(shí)例轉(zhuǎn)換為可以描述其內(nèi)容的字符串.這個(gè)方法的作用是在程序調(diào)試的過(guò)程可以方便地得到實(shí)體對(duì)象中令人感興趣的信息,有利于更準(zhǔn)確及時(shí)地發(fā)現(xiàn)程序中的問(wèn)題.



          posted on 2007-08-29 19:48 Ke 閱讀(1113) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate
          主站蜘蛛池模板: 获嘉县| 郸城县| 阳曲县| 岳西县| 滦南县| 襄城县| 邢台市| 开化县| 修文县| 鄂托克前旗| 宁都县| 泸溪县| 岚皋县| 无极县| 招远市| 金溪县| 响水县| 余姚市| 阜南县| 乌海市| 乐都县| 崇左市| 恩平市| 临海市| 昌都县| 休宁县| 台南县| 巴楚县| 鲁山县| 曲周县| 耒阳市| 布尔津县| 九寨沟县| 招远市| 灵山县| 凤庆县| 阳原县| 鹤峰县| 正宁县| 荃湾区| 江西省|