Jakarta Commons Cookbook笔记(1)

Jakarta Commons Cookbook笔记(1)

从图书馆借了《Jakarta Commons Cookbook》,系统的了解了一下Apache的commons包,将一些以后可能会常用到的记录如下。陈刚(www.chengang.com.cn)于2007-12-18.深圳。由于工作平台是Linux,所以是记在OpenOffice里,粘帖过来的时候排版有些失真,也不想修整了,等笔记完成之后直接再出一个PDF版本吧。

Jakarta Commons Cookbook笔记

lang包

ReflectionToStringBuilder.toString()

例1.

ReflectionToStringBuilder.toString(newModel())

Model@14318bb[url=www.chengang.com.cn,port=80]


例2.

ReflectionToStringBuilder.toString(newModel(),ToStringStyle.MULTI_LINE_STYLE));

Model@14318bb[

url=www.chengang.com.cn

port=80

]


classModel{

Stringurl="www.chengang.com.cn";

intport=80;

}


ToStringBuilder.reflectionToString();

例1.

ToStringBuilder.reflectionToString(newModel());

Model@14318bb[url=www.chengang.com.cn,port=80]

改写类的三方法toString、hashCode、equals

classModel{

Stringurl="www.chengang.com.cn";

intport=80;

publicStringtoString(){

returnnewToStringBuilder(this).append("url",url).append("port",port).toString();

}

publicinthashCode(){

//17,37要求为质数

returnnewHashCodeBuilder(17,37).append(url).append(port).toHashCode();

// HashCodeBuilder.reflectionHashCode(this);

}

publicbooleanequals(Objecto){

booleanresult=false;

if(o!=null&&Model.class.isAssignableFrom(o.getClass())){

Modelm=(Model)o;

result=newEqualsBuilder().append(url,m.url).append(port,m.port).isEquals();

}

returnresult;

//EqualsBuilder.reflectionEquals(this,o);

}

}

CompareToBuilder.reflectionCompare(this,o);

public int compareTo(Object o){

return CompareToBuilder.reflectionCompare(this,o);

}


public int compareTo(Object o){

int result = -1;

if (o!=null && Model.class.isAssignableFrom(o.getClass()){

Model m = (Model)o;

result = new CompareToBuilder().append(url,m.url).append(port,m.port)

.toComparison();

}

return result;

}


打印数组

用commons的:ArrayUtils.toString();

用JDK的:Arrays.toString();


基础类型和包装类型的数组互转

Long[] objectArray = ArrayUtils.toObject(primitiveArray);

long[] primitiveArray = ArrayUtils.toprimitive(objectArray);

在数组中查找

boolean b = ArrayUtils.contains(stringArray, "glchengang");

int i = ArrayUtils.indexOf(stringArray, "glchengang"); //找不到返回-1

int l = ArrayUtils.lastIndexOf(stringArray, "glchengang");

多维数组转Map

Object[] array = new Object[][]{{"A", new Double(1.007)}, ... , {"F", new Double(1.007)}};

Map map = ArrayUtils.toMap(array);

Double d = map.get("A");

你可能感兴趣的:(Jakarta Commons Cookbook笔记(1))