如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
概述第一次看到BeanUtils包,是在Struts项目中,作为Struts一个工具来使用的,估计功能越弄越强,就移到Common项目中了吧。BeanUtils一共有四个package:org.apache.commons.beanutilsorg.apache.commons.beanutils.convertersorg.apache.commons.beanutils.localeorg.apache.commons.beanutils.locale.converters后三个包主要是用于数据的转换,围绕着一个Converter接口,该接口只有一个方法:java.lang.Objectconvert(java.lang.Classtype,java.lang.Objectvalue),用于将一个value转换成另一个类型为type的Object。在一些自动化的应用中应该会有用。这里不作评论,以后有兴趣了,或者觉得有用了,再行研究。这里只讲第一个包。二、测试用的Bean在开始所有的测试之前,我写了一个简单的Bean,以便于测试,代码如下:packagetest.jakarta.commons.beanutils;/***@authorSonyMusic**/publicclassMonth{privateintvalue;privateStringname;privateint[]days={11,22,33,44,55};publicMonth(intv,Stringn){value=v;name=n;}/***Returnsthename.*@returnString*/publicStringgetName(){returnname;}/***Returnsthevalue.*@returnint*/publicintgetValue(){returnvalue;}/***Setsthename.*@paramnameThenametoset*/publicvoidsetName(Stringname){this.name=name;}/***Setsthevalue.*@paramvalueThevaluetoset*/publicvoidsetValue(intvalue){this.value=value;}/***@seejava.lang.Object#toString()*/publicStringtoString(){returnvalue+"("+name+")";}publicint[]getDays(){returndays;}publicvoidsetDays(int[]is){days=is;}}三、BeanUtils这是一个主要应用于Bean的Util(呵呵,这个解释很绝吧),以下是其中几个方法的例子//staticjava.util.Mapdescribe(java.lang.Objectbean)//这个方法返回一个Object中所有的可读属性,并将属性名/属性值放入一个Map中,另外还有//一个名为class的属性,属性值是Object的类名,事实上class是java.lang.Object的一个属性Monthmonth=newMonth(1,"Jan");try{Mapmap=BeanUtils.describe(month);SetkeySet=map.keySet();for(Iteratoriter=keySet.iterator();iter.hasNext();){Objectelement=(Object)iter.next();System.out.println("KeyClass:"+element.getClass().getName());System.out.println("ValueClass:"+map.get(element).getClass().getName());System.out.print(element+"\t");System.out.print(map.get(element));System.out.println();}}catch(IllegalAccessExceptione){e.printStackTrace();}catch(InvocationTargetExceptione){e.printStackTrace();}catch(NoSuchMethodExceptione){e.printStackTrace();}输出为:KeyClass:java.lang.StringValueClass:java.lang.Stringvalue1KeyClass:java.lang.StringValueClass:j