BeanUntils小结

来源:互联网 发布:淘宝苹果手机哪家靠谱 编辑:程序博客网 时间:2024/06/01 07:38

主要解决的问题是:把对象的属性数据封装到对象中。在整个J2EE的编程过程中,我们经常会从各种配置文件中读取相应的数据,需要明白的一点是从配置文件中读取到的数据都是String,但是很显然我们的应用程序中不仅仅有String一种数据类型,比如:基本数据类型(int、double、char、float等),还有自定义数据类型(引用数据类型),那么我们必须面临的一个问题就是讲字符串类型转换为各种具体的数据类型,该怎么办呢?有两种方法供我们是使用:

  • commons-beanutils-1.9.2.jar 下载地址: http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi
  • commons-logging.jar 下载地址: https://commons.apache.org/proper/commons-logging/download_logging.cgi
其中student 和school两个类我就没复制进来,school是student的一个属性(引用类型)。
import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.beanutils.ConvertUtils;import org.apache.commons.beanutils.converters.DateConverter;/** * beanUntils 的运用 * @author Dason_yu * */public class BeanUntilsTest {public static void main(String[] args) throws Exception {//加载类Class c = Class.forName("com.siebre.Student");//创建bean对象Student s = (Student) c.newInstance();//通过beanUntils给对象赋值BeanUtils.setProperty(s, "name", "Dason.Yu");BeanUtils.setProperty(s, "id", 9527);//通过beanUntils获取属性值 返回StringString str = BeanUtils.getProperty(s, "name");System.out.println(str);System.out.println();//以上1*****************************************************//通过beanUntils克隆对象    BeanUtils.cloneBean()Student s1 = (Student) BeanUtils.cloneBean(s);Student scopy = new Student();BeanUtils.copyProperties(scopy, s1);System.out.println("scopy.name:"+scopy.getName()+" "+"scopy.id:"+scopy.getId());System.out.println("s1.name:"+s1.getName()+"  "+"s1.id:"+s1.getId());System.out.println();//以上2******************************************************/** * bean与map的转换 */Map<String,String> map = new HashMap<String,String>();map.put("name", "Dason");map.put("id", "95277");//将map转换成bean对象   BeanUtils.populate()Student s2 = new Student();BeanUtils.populate(s2, map);System.out.println("s2.name and s2.id:"+s2.getName()+"  "+s2.getId());//将bean转换成map  BeanUtils.describe()Map<String,String> map1 = BeanUtils.describe(s);Map<String,String> map2 = BeanUtils.describe(s1);Map<String,String> map3 = BeanUtils.describe(s2);System.out.println(map1.get("class"));System.out.println(map2);System.out.println(map3);System.out.println();//以上3******************************************************/**获取Bean的数组集合字段值 *  */Student s3 =new Student();s3.setArray(new String[]{"a","b","c"});List<String> list = new ArrayList<String>();list.add("1");list.add("2");list.add("3");System.out.println("生成的list:"+list);s3.setList(list);String[] arr =  BeanUtils.getArrayProperty(s3, "array");System.out.println("数组 array:" + Arrays.asList(arr));String[] lis =  BeanUtils.getArrayProperty(s3, "list");System.out.println("arr.length:"+arr.length);System.out.println("arr[1]:"+arr[1]);System.out.println("lis.length:"+lis.length);System.out.println("lis[2]:"+lis[2]);System.out.println("arr[1] beanUtils:"+BeanUtils.getProperty(s3, "array[1]"));//是一个数组对象  并不是把数组输出出来System.out.println("arr beanUtils:"+BeanUtils.getArrayProperty(s3, "array"));System.out.println("arr数组 beanUtils:"+Arrays.asList(BeanUtils.getArrayProperty(s3, "array")));System.out.println("array.length beanUtils:"+BeanUtils.getArrayProperty(s3, "array").length);System.out.println("lis[2] beanUtils:"+BeanUtils.getIndexedProperty(s3, "list",2));System.out.println("list.length beanUtils:"+BeanUtils.getArrayProperty(s3, "list").length);System.out.println();//以上4******************************************************/** * 获取Bean的Map字段值 */Student s4 = new Student();Map<String,String> map4 = new HashMap<String,String>();map4.put("key", "value");map4.put("key1", "value1");s4.setMap(map4);//System.out.println(BeanUtils.getMappedProperty(s4, "map"));System.out.println(BeanUtils.getMappedProperty(s4, "map", "key"));System.out.println(BeanUtils.getProperty(s4, "map.key1"));System.out.println();//以上5******************************************************/** * 获得Bean的嵌套字段值 */Student s5 = new  Student();School school = new School();school.setSname("哈佛");s5.setSchool(school);System.out.println(BeanUtils.getNestedProperty(s5, "school.sname"));System.out.println(BeanUtils.getProperty(s5, "school.sname"));System.out.println();//以上6******************************************************/** * 日期转换 */Student s6 = new Student();DateConverter converter = new DateConverter();//转换模式converter.setPattern("yyyy/MM/dd HH:mm:ss");//注册转换器ConvertUtils.register(converter, String.class);ConvertUtils.register(converter, Date.class);BeanUtils.setProperty(s6, "date", "2016/3/23 17:30:00");//Date date = new Date();//SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");//String sDate = sdf.format(date);//BeanUtils.setProperty(s6, "date", sDate);System.out.println(BeanUtils.getProperty(s6, "date"));System.out.println();//以上7******************************************************}



0 0
原创粉丝点击