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. WPF 中保存 window(窗口)或者canvas成图片

    最近需要用到这个功能,搜了一下不少代码有问题 ,找到一个效果比较好的,支持多级子元素 记一下. private void button_save_window_Click(object sender, ...

  2. mac10.9下eclipse的storm开发环境搭建

    --------------------------------------- 博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1& ...

  3. Elasticsearch查询

    Elasticsearch支持两种类型的查询:基本查询和复合查询. 基本查询,如词条查询用于查询实际数据. 复合查询,如布尔查询,可以合并多个查询, 然而,这不是全部.除了这两种类型的查询,你还可以用 ...

  4. UVA 11082 矩阵解压(网络流建模)

    矩阵解压 紫书P374 建模真的是挺难的,如果直接给我这题,我是想不到用网络流的,所以还应多做网路流建模,学会如何转化成网络流 还有,现在用的EK算法是比较慢的,还应去看看Dnic和ISAP,并且理解 ...

  5. Windows,caffe 仅cpu

    http://caffe.berkeleyvision.org/installation.html 按着官网的步骤:https://github.com/BVLC/caffe/tree/windows ...

  6. Xamarin.Forms介绍

    On May 28, 2014, Xamarin introduced Xamarin.Forms, which allows you to write user-interface code tha ...

  7. 树莓派 自身摄像头的opencv调用

    之前写过一篇随笔关于树莓派3上摄像头的调用,使用的方式是安装v4l2驱动. 实际上有一种更加简单的方法. 树莓派中的camera module是放在/boot/目录下以固件的形式加载的,不是一个标准的 ...

  8. (转)原始图像数据和PDF中的图像数据

    比较原始图像数据和PDF中的图像数据,结果见表1.1.表1.1中各种“解码器”的解释见本文后续的“PDF支持的图像格式”部分,“PDF中的图像数据”各栏中的数据来自开源的PdfView.如果您有兴趣查 ...

  9. 113、ScrollView滑动到了最底部

    ScrollView使用 http://www.cnblogs.com/androidsj/archive/2012/03/04/2379387.html 滚动到顶部判断:getScrollY() = ...

  10. Linux 服务器的网络配置 - 2. 查看 Linux 服务器的进程

    2. 查看 Linux 服务器的进程 1)ps [主要选项] -a  显示系统中所有进程的信息 -e  显示所有进程的信息 -f  显示进行的所有信息 -l   以长格式显示进程信息 -r  只显示正 ...