commons-lang中常用操作compareTo、equals、toString、hashCode的用法

commons-lang3-3.3.2.jar提供一些基础的、通用的操作和处理
包:org.apache.commons.lang3.builder

CompareToBuilder – 用于辅助实现Comparable.compareTo(Object)方法:

@Override
    public int compareTo(Version version) {
         return  CompareToBuilder.reflectionCompare( this , version);//只比较值  注意对象包含引用对象时,引用对象也需要实现Comparable接口
    }

注意:比较之前对象需要序列化,如果对象中含有引用属性变量并没有实现Comparable接口被创建后是无法比较的出现如下错误:
com.class... cannot be cast to java.lang.Comparable  因为实现Comparable接口就是用来制定比较策略,没有策略无法比较

EqualsBuilder – 用于辅助实现Object.equals()方法:

@Override
    public boolean equals(Object obj) {//两个对象相等当且仅当每个属性值都相等
        return EqualsBuilder.reflectionEquals(this, obj);
    }

HashCodeBuilder – 用于辅助实现Object.hashCode()方法:

@Override
	public int hashCode() {//根据属性值生成hash码
		return HashCodeBuilder.reflectionHashCode(this);
	}

ToStringBuilder - 用于辅助实现Object.toString()方法:

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

 

你可能感兴趣的:(java)