CommonUtils
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的更多相关文章
- cas 单点登录出现org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 拒绝连接 Connection refused
cas 单点登录出现org.jasig.cas.client.util.CommonUtils.getResponseFromServer - 拒绝连接 Connection refused 环境: ...
- CommonUtils.java
package com.vcredit.framework.utils; import java.lang.reflect.InvocationTargetException;import java. ...
- 网上图书商城项目学习笔记-036工具类之CommonUtils及日期转换器
1.CommonUtils.java package cn.itcast.commons; import java.util.Map; import java.util.UUID; import or ...
- 浅谈Java工具类CommonUtils的使用
package com.xushouwei.cn; import java.util.HashMap; import java.util.Map; import org.junit.Test; imp ...
- 工具类封装之--CommonUtils
/** * @file_name : CommonUtils.java * @author : * @date : 2018年3月15日 * Description: */ package cn.xx ...
- JavaWeb网上图书商城完整项目-CommonUtils(1生成uuid,2Map转换成JavaBean)
java工程中添加上面的jar包 CommonUtils类就两个方法: l String uuid():生成长度32的随机字符,通常用来做实体类的ID.底层使用了UUID类完成: l T toBe ...
- Java多线程基础——对象及变量并发访问
在开发多线程程序时,如果每个多线程处理的事情都不一样,每个线程都互不相关,这样开发的过程就非常轻松.但是很多时候,多线程程序是需要同时访问同一个对象,或者变量的.这样,一个对象同时被多个线程访问,会出 ...
- [Java Collection]List分组之简单应用.
前言 今天有一个新需求, 是对一个List进行分组, 于是便百度到一些可用的代码以及我们项目使用的一些tools, 在这里总结下方便以后查阅. 一: 需求 现在我们一个数据库表t_series_val ...
- Restful 介绍及SpringMVC+restful 实例讲解
restful不是一个框架,称为一种编码更烦更贴切吧,其核心类位于spring-web.jar中,即RestTemplate.class restful是rpc通过http协议的一种实现方式,和web ...
随机推荐
- 【ZJOI2004】嗅探器
练tarjian不错的题,连WA几次后终于会记住tarjian的模板了 原题: 某军搞信息对抗实战演习.红军成功地侵入了蓝军的内部网络.蓝军共有两个信息中心.红军计划在某台中间服务器上安装一个嗅探器, ...
- winsock教程- windows下的socket编程(c语言实现)
winsock教程- windows下的socket编程(c语言实现) 使用winsock进行socket 编程 这是一个学习windows下socket编程(c语言)的快速指南.这是因为一下 ...
- Spring源码学习之:ClassLoader学习(3)
ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回 这个类的class对象. 1.1 几个相关概念Clas ...
- JS操作iframe
1. 获得iframe的window对象 存在跨域访问限制. chrome:iframeElement. contentWindow firefox: iframeElement.contentWin ...
- FC 坦克大战 老巢铁墙
老巢外围铁墙E2A9:AC 80 EFEF80:A5 10 85 45 A5 45 AC D2 E2 用十六进制编辑器打开坦克大战的游戏文件搜索A5 45 F0 25 A5 0B改为AC 80 EF ...
- CSS组件架构的设计思想
不管是设计思想,还是架构,都可以总结为一个词:AO模式.A表示Append,即“附加”的意思,O表示Overwrite,即“重写”的意思.所有的CSS组件都是沿用这种思想来设计的.这也是CSS的特性, ...
- ImageLoader介绍2
Universal Image Loader 是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示.所以,如果你的程序里需要这个功能的话,那么不妨试试它.他本来是 ...
- spring Transaction Propagation 事务传播
spring Transaction中有一个很重要的属性:Propagation.主要用来配置当前需要执行的方法,与当前是否有transaction之间的关系. 我晓得有点儿抽象,这也是为什么我想要写 ...
- MFC中的各种DC区别
转载自:xntop的<区别MFC中的CClientDC.CWindowDC.CPaintDC.CMetaFileDC> CClientDC及其子类 1. CClientDC类只能在客户区绘 ...
- 22. Surrounded Regions
Surrounded Regions Given a 2D board containing 'X' and 'O', capture all regions surrounded by 'X'. A ...