小工具之UUID和map 转换 JavaBean

第一个类:测试类

package com.victorzhang.tools.commons;

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

import org.junit.Test;

/**
 * 对CommonUtils类的方法进行测试
 * @author victor
 *
 */
public class CommonUtilsTest {
	
	/**
	 * 测试CommonUtils类中uuid();返回的一个长32位的大写字符串
	 */
	@Test
	public void uuidTest(){
		String s = CommonUtils.uuid();
		System.out.println(s);
	}
	
	/**
	 * 测试CommonUtils类中toBean();将map类型映射到Bean类型中
	 */
	@Test
	public void toBeanTest(){
		Map<String, String> map = new HashMap<String, String>();
		map.put("pid", CommonUtils.uuid());
		map.put("age", "24");
		map.put("birthday", "1990-09-29");
		map.put("pname", "victorzhang");
		
		Person person = CommonUtils.toBean(map, Person.class);
		System.out.println(person);
	}
}



第二个类:主体类
package com.victorzhang.tools.commons;

import java.util.Map;
import java.util.UUID;

import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;

/**
 * 类提供生成32位重复字符串和map转换成对象工呢过
 * @author victor
 *
 */

public class CommonUtils {
	
	/**
	 * 返回一串大写的32位字符串
	 * @return
	 */
	public static String uuid(){
		return UUID.randomUUID().toString().replace("-", "").toUpperCase();
	}
	
	/**
	 * map
	 * @param map
	 * @param clazz
	 * @return
	 */
	@SuppressWarnings("rawtypes")
	public static <T> T toBean( Map map, Class<T> clazz){
		try {
			T bean = clazz.newInstance();
			ConvertUtils.register(new DateConvert(), java.util.Date.class);
			BeanUtils.populate(bean, map);
			return bean;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}
}


第三个类:将map类对象转换成javaBean操作

package com.victorzhang.tools.commons;

import java.util.Date;

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


第四格类:格式转换类(String ----> Date)

package com.victorzhang.tools.commons;

import java.<span style="font-family: Arial, Helvetica, sans-serif;">util.Date;</span>

import org.apache.commons.beanutils.Converter;

/**
 * 把String转换成java.util.Date的类型转换器
 * @author victor
 *
 */

public class DateConvert implements Converter {

	@Override
	@SuppressWarnings("rawtypes") 
	public Object convert(Class type, Object value) {
		if(value == null) return null;//如果为null类型,则返回null
		if(!(value instanceof String)) return value;//如果value不属于String类型,则直接返回
		
		String val = (String) value;//其他情况下,将value强制类型转换成String类型
		
		//SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//日期格式转换
		Date date = Date.valueOf(val);
		return date;
	}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值