package com.utils;

import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Set; public class CommonUtils {
/**
* 将map中的值赋值到po中
*
* @param map
* 前台传过来的值封装成的map对象
* @param obj
* po实体类
*/
public static void getLatestObjectByMap(Map<String, ?> map, Object obj) {
Set<String> keys = map.keySet();
for (String key : keys) {
Object value = map.get(key);
Class<? extends Object> clazz = obj.getClass();
try {
Field field = clazz.getDeclaredField(key);
field.setAccessible(true);
field.set(obj, getValue(key, field.getType().getName(), value));
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
} /**
* 将fieldValue转为dataType类型的值
*
* @param key
* @param dataType
* @param fieldValue
* @return
*/
private static Object getValue(String key, String dataType,
Object fieldValue) {
String errorMessage = key + "为[" + dataType + "]而设置的值为["
+ fieldValue.getClass().getName() + "]";
String numberFormatErrorMessage = key + " [" + fieldValue + "]转换为["
+ dataType + "]出错";
System.out.println(dataType);
if ("java.sql.Date".equals(dataType)) {
if (fieldValue instanceof java.sql.Date) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
String formatString = "yyyy-MM-dd";
try {
SimpleDateFormat sdf = new SimpleDateFormat(formatString);
Date date = sdf.parse((String) fieldValue);
return new java.sql.Date(date.getTime());
} catch (Exception e) {
throw new RuntimeException(key + "[" + fieldValue
+ "]格式错误,正确格式为[" + formatString + "]");
}
} else {
throw new RuntimeException(errorMessage);
}
} else if ("java.util.Date".equals(dataType)) {
if (fieldValue instanceof java.util.Date) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
String formatString = "yyyy-MM-dd";
try {
SimpleDateFormat sdf = new SimpleDateFormat(formatString);
java.util.Date date = sdf.parse((String) fieldValue);
return date;
} catch (Exception e) {
throw new RuntimeException(key + "[" + fieldValue
+ "]格式错误,正确格式为[" + formatString + "]");
}
} else {
throw new RuntimeException(errorMessage);
}
} else if ("java.sql.Timestamp".equals(dataType)) {
if (fieldValue instanceof java.sql.Timestamp) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
String formatString = "yyyy-MM-dd HH:mm:ss";
try {
SimpleDateFormat sdf = new SimpleDateFormat(formatString);
Date date = sdf.parse((String) fieldValue);
return new Timestamp(date.getTime());
} catch (Exception e) {
throw new RuntimeException(key + "[" + fieldValue
+ "]格式错误,正确格式为[" + formatString + "]");
}
} else {
throw new RuntimeException(errorMessage);
}
} else if ("java.lang.String".equals(dataType)) {
if (fieldValue instanceof java.lang.String) {
return fieldValue;
} else {
throw new RuntimeException(errorMessage);
}
} else if ("java.math.BigDecimal".equals(dataType)) {
if (fieldValue instanceof java.math.BigDecimal) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
try {
return new BigDecimal(String.valueOf(fieldValue));
} catch (Exception e) {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
}
} else if (("java.lang.Integer".equals(dataType))
|| ("int".equals(dataType))) {
if (fieldValue instanceof java.lang.Integer) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
try {
return new Integer(String.valueOf(fieldValue));
} catch (Exception e) {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
}
} else if (("java.lang.Long".equals(dataType))
|| ("long".equals(dataType))) {
if (fieldValue instanceof java.lang.Long) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
try {
return new Long(String.valueOf(fieldValue));
} catch (Exception e) {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
} } else if (("java.lang.Short".equals(dataType))
|| ("short".equals(dataType))) {
if (fieldValue instanceof java.lang.Short) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
try {
return new Short(String.valueOf(fieldValue));
} catch (Exception e) {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
}
} else if (("java.lang.Byte".equals(dataType))
|| ("byte".equals(dataType))) {
if (fieldValue instanceof java.lang.Byte) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
try {
return new Byte(String.valueOf(fieldValue));
} catch (Exception e) {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
}
} else if (("java.lang.Float".equals(dataType))
|| ("float".equals(dataType))) {
if (fieldValue instanceof java.lang.Float) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
try {
return new Float(String.valueOf(fieldValue));
} catch (Exception e) {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
}
} else if (("java.lang.Double".equals(dataType))
|| ("double".equals(dataType))) {
if (fieldValue instanceof java.lang.Double) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
try {
return new Double(String.valueOf(fieldValue));
} catch (Exception e) {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
}
} else if (("java.lang.Boolean".equals(dataType))
|| ("boolean".equals(dataType))) {
if (fieldValue instanceof java.lang.Boolean) {
return fieldValue;
} else if (fieldValue instanceof java.lang.String) {
if ("true".equals(fieldValue)) {
return new Boolean(true);
} else if ("false".equals(fieldValue)) {
return new Boolean(false);
} else {
throw new RuntimeException(numberFormatErrorMessage);
}
} else {
throw new RuntimeException(errorMessage);
}
} else if (("java.lang.Character".equals(dataType))
|| ("char".equals(dataType))) {
{
return new Character(String.valueOf(fieldValue).charAt(0));
}
}
return fieldValue;
}
}

CommonUtils的更多相关文章

  1. cas 单点登录出现org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 拒绝连接 Connection refused

    cas 单点登录出现org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 拒绝连接 Connection refused 环境: ...

  2. CommonUtils.java

    package com.vcredit.framework.utils; import java.lang.reflect.InvocationTargetException;import java. ...

  3. 网上图书商城项目学习笔记-036工具类之CommonUtils及日期转换器

    1.CommonUtils.java package cn.itcast.commons; import java.util.Map; import java.util.UUID; import or ...

  4. 浅谈Java工具类CommonUtils的使用

    package com.xushouwei.cn; import java.util.HashMap; import java.util.Map; import org.junit.Test; imp ...

  5. 工具类封装之--CommonUtils

    /** * @file_name : CommonUtils.java * @author : * @date : 2018年3月15日 * Description: */ package cn.xx ...

  6. JavaWeb网上图书商城完整项目-CommonUtils(1生成uuid,2Map转换成JavaBean)

    java工程中添加上面的jar包 CommonUtils类就两个方法: l  String uuid():生成长度32的随机字符,通常用来做实体类的ID.底层使用了UUID类完成: l  T toBe ...

  7. Java多线程基础——对象及变量并发访问

    在开发多线程程序时,如果每个多线程处理的事情都不一样,每个线程都互不相关,这样开发的过程就非常轻松.但是很多时候,多线程程序是需要同时访问同一个对象,或者变量的.这样,一个对象同时被多个线程访问,会出 ...

  8. [Java Collection]List分组之简单应用.

    前言 今天有一个新需求, 是对一个List进行分组, 于是便百度到一些可用的代码以及我们项目使用的一些tools, 在这里总结下方便以后查阅. 一: 需求 现在我们一个数据库表t_series_val ...

  9. Restful 介绍及SpringMVC+restful 实例讲解

    restful不是一个框架,称为一种编码更烦更贴切吧,其核心类位于spring-web.jar中,即RestTemplate.class restful是rpc通过http协议的一种实现方式,和web ...

随机推荐

  1. POI给Excel添加数字筛选

    HSSFSheet sheet = workbook.createSheet("list"); CellRangeAddress ce = CellRangeAddress.val ...

  2. 综合使用union和limit区分结果并限制返回结果集的条数

    limit , 这里的limit限制了返回的union(合并)后的结果集,

  3. ABBYY如何使用电子邮件发送OCR结果

    ABBYY FineReader作为一款OCR图文识别软件,在识别文档之后,可以以任何受支持的格式(除HTML外),通过电子邮件发送识别结果,不仅可以发送文档,还可以发送页面图像,本文将为大家讲解如何 ...

  4. 类似于C# using() java 语法

    From :   https://www.infoq.com/news/2010/08/arm-blocks try(Jedis jedis = jedisPool.getResource()){ S ...

  5. Base64编码解码

    一. Base64编码由来 为什么会有Base64编码呢?因为有些网络传送渠道并不支持所有的字节,例如传统的邮件只支持可见字符的传送,像ASCII码的控制字符就不能通过邮件传送.这样用途就受到了很大的 ...

  6. [Spring MVC] - SpringMVC的各种参数绑定方式

    SpringMVC的各种参数绑定方式 1. 基本数据类型(以int为例,其他类似):Controller代码: @RequestMapping("saysth.do") publi ...

  7. python分布式任务调度Celery

    Celery是Python开发的分布式任务调度模块,今天抽空看了一下,果然接口简单,开发容易,5分钟就写出了一个异步发送邮件的服务. Celery本身不含消息服务,它使用第三方消息服务来传递任务,目前 ...

  8. 整合Apache+PHP教程

    首先修改Apache的配置文件,让Apache支持解析PHP文件,Apache配置文件在Apache安装目录的conf目录下的httpd.conf,打开此文件, 找到#LoadModule,在这个下面 ...

  9. 【cl】Json学习

    http://www.cnblogs.com/java-pan/archive/2012/04/07/2436507.html

  10. RealtekRTL8111内建网卡-黑苹果之路

    真是服了这神一样的黑苹果.好不容易配好显卡,登陆appstore却报“无法验证您的设备或电脑”,查了一圈,又说要配网卡为en0的,有说要在clover中配FIXLAN的,最准确的是网卡必须是内建(Bu ...