CommonUtils

CommonUtils类就两个方法:

l、String uuid():生成长度32的随机字符,通常用来做实体类的ID。底层使用了UUID类完成;

2、T toBean(Map, Class<T>):把Map转换成指定类型的Bean对象。通常用来获取表单数据(request.getParameterMap())封装到JavaBean中,底层使用了common-beanutils。

注意,本方法要求map中键的名称要与Bean的属性名称相同才能完成映射,否则不能完成映射。

package cn.edu.zk.sxx.test;

import java.util.HashMap;
import java.util.Map;

import org.junit.Test;

import cn.itcast.commons.CommonUtils;

public class CommonUtilsTest {
    /**
     * 测试CommonUtils类
     * 返回一个随机的32长的字符串
     * 
     * CommonUtils类依赖的jar:commons-beanutils.jar、commons-logging.jar
     */
    @Test
    public void testUuid(){
        String s = CommonUtils.uuid();
        System.out.println(s);
    }
    /**
     * 
     */
    @Test
    public void testToBean(){
        /*
         * 1、创建Map
         */
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("pid", "1");
        map.put("pname", "小小");
        map.put("age", "18");
        map.put("xxx", "XXX");
        //通过map的数据来创建person类型的Javabean对象
        Person p = CommonUtils.toBean(map, Person.class);
        System.out.print(p);
    }
    
}

person类

注意:

如果
      map的key:pid、pname、age、xxx
      person的属性:pid、pname、age、sex
      map中没有名为sex的键值,而多出一个名为xxx的键值,所以映射后的person对象的sex属性值为null。
      map中的age是字符串类型,而person的age是int类型,但toBean()方法会自动对Map中值进行类型转换。
    

package cn.edu.zk.sxx.test;

public class Person {
    private String pid;
    private String pname;
    private int age;
    public String getPid() {
        return pid;
    }
    public void setPid(String pid) {
        this.pid = pid;
    }
    public String getPname() {
        return pname;
    }
    public void setPname(String pname) {
        this.pname = pname;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Person [pid=" + pid + ", pname=" + pname + ", age=" + age + "]";
    }
    
}

输出结果:

1494321730(1)

原文地址:https://www.cnblogs.com/suxiaoxia/p/6831621.html