CompareToBuilder,EqualsBuilder,ToStringBuilder

canca canca
2008-09-16 18:46
2
0

在编码过程中,我们可能经常用到两个对象比较,将对象中的元素转化成字符串等等。现在这些工作已经有相应的包了

import org.apache.commons.lang.builder.CompareToBuilder 
import org.apache.commons.lang.builder.EqualsBuilder 
import org.apache.commons.lang.builder.HashCodeBuilder 
import org.apache.commons.lang.builder.ToStringBuilder 

class LavaLamp implements Comparable{ 
@Property model 
@Property baseColor 
@Property liquidColor 
@Property lavaColor 

def String toString() { 
   return new ToStringBuilder(this). 
       append(this.model). 
    append(this.baseColor). 
    append(this.liquidColor). 
    append(this.lavaColor). 
    toString() 


def boolean equals(obj) { 
     if (!(obj instanceof LavaLamp)) { 
        return false 
     } 
     LavaLamp rhs = (LavaLamp) obj 
        return new EqualsBuilder(). 
            append(this.model, rhs.model). 
            append(this.baseColor, rhs.baseColor). 
            append(this.liquidColor, rhs.liquidColor). 
            append(this.lavaColor,rhs.lavaColor).isEquals() 
  } 
  def int compareTo(obj) { 
     LavaLamp lmp = (LavaLamp)obj 
        return new CompareToBuilder(). 
            append(lmp.model, this.model).append(lmp.lavaColor, this.lavaColor).append(lmp.baseColor, this.baseColor). 
            append(lmp.liquidColor, this.liquidColor). 
            toComparison() 
  } 

发表评论