Commons Beanutils是一组专门用于操作Bean的工具类,目前很多流行的框架基本都离不开他。
版本:commons-beanutils-1.8.3.jar
1、获取字段值
Java代码
SampleBean bean1 = newSampleBean(); bean1.setName("rensanning"); bean1.setAge(31); String name =BeanUtils.getProperty(bean1, "name"); String age = BeanUtils.getProperty(bean1,"age"); System.out.println(name); System.out.println(age);
2、设置字段值
Java代码
SampleBean bean2 = newSampleBean(); BeanUtils.setProperty(bean2,"name", "rensanning"); BeanUtils.setProperty(bean2,"age", 31); System.out.println(bean2.getName()); System.out.println(bean2.getAge());
3、赋值Bean
Java代码
SampleBean bean3 = newSampleBean(); bean3.setName("rensanning"); bean3.setAge(31); SampleBean clone = (SampleBean)BeanUtils.cloneBean(bean3); System.out.println(clone.getName()); System.out.println(clone.getAge());
4、Bean的describe
Java代码
SampleBean bean4 = newSampleBean(); bean4.setName("rensanning"); bean4.setAge(31); @SuppressWarnings("unchecked") Map<String, String> map4= BeanUtils.describe(bean4); System.out.println(map4.get("name")); System.out.println(map4.get("age"));
5、Bean的populate
Java代码
SampleBean bean5 = newSampleBean(); Map<String, String> map5= new HashMap<String, String>(); map5.put("name", "rensanning"); map5.put("age","31"); BeanUtils.populate(bean5,map5); System.out.println(bean5.getName()); System.out.println(bean5.getAge());
Java代码
SampleBean bean6 = newSampleBean(); bean6.setArray(newString[]{"a", "b", "c"}); List<String> list0 = newArrayList<String>(); list0.add("d"); list0.add("e"); list0.add("f"); bean6.setList(list0); String[] array =BeanUtils.getArrayProperty(bean6, "array"); System.out.println(array.length);//3 System.out.println(array[0]);//"a" System.out.println(array[1]);//"b" System.out.println(array[2]);//"c" String[] list = BeanUtils.getArrayProperty(bean6,"list"); System.out.println(list.length);//3 System.out.println(list[0]);//"d" System.out.println(list[1]);//"e" System.out.println(list[2]);//"f" System.out.println(BeanUtils.getProperty(bean6,"array[1]"));//"b" System.out.println(BeanUtils.getIndexedProperty(bean6,"array", 2));//"c"
7、获取Bean的Map字段值
Java代码
SampleBean bean7 = newSampleBean(); Map<String, String> map =new HashMap<String, String>(); map.put("key1","value1"); map.put("key2","value2"); bean7.setMap(map); String value1 =BeanUtils.getMappedProperty(bean7, "map", "key1"); System.out.println(value1);//"value1" String value2 = BeanUtils.getMappedProperty(bean7,"map", "key2"); System.out.println(value2);//"value2" System.out.println(BeanUtils.getProperty(bean7,"map.key1"));//"value1" System.out.println(BeanUtils.getProperty(bean7,"map.key2"));//"value2"
Java代码
SampleBean bean = newSampleBean(); NestedBean nestedBean = newNestedBean(); nestedBean.setNestedProperty("xxx"); bean.setNestedBean(nestedBean); String value =BeanUtils.getNestedProperty(bean, "nestedBean.nestedProperty"); System.out.println(value);//"xxx" System.out.println(BeanUtils.getProperty(bean,"nestedBean.nestedProperty"));//"xxx"
Java代码
SampleBean bean8 = newSampleBean(); BeanUtils.setProperty(bean8,"url", "http://www.google.com/"); URL url = bean8.getUrl(); System.out.println(url.getProtocol());//"http" System.out.println(url.getHost());//"www.google.com" System.out.println(url.getPath());//"/"
Java代码
SampleBean bean9 = new SampleBean(); DateConverter converter = new DateConverter(); converter.setPattern("yyyy/MM/dd HH:mm:ss"); ConvertUtils.register(converter, Date.class); ConvertUtils.register(converter, String.class); BeanUtils.setProperty(bean9, "date", "2010/12/19 23:40:00"); String value9 = BeanUtils.getProperty(bean9, "date"); System.out.println(value9);//"2010/12/19 23:40:00"