Map工具类 博客分类: J2SE
程序员文章站
2024-03-23 09:01:40
...
import java.io.Serializable; import java.lang.reflect.Field; import java.lang.reflect.Modifier; import java.math.BigDecimal; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author * 2017-09-25 */ public class MapConvertUtil implements Serializable{ /** * 序列化 */ private static final long serialVersionUID = -1581756576497606672L; private static final Logger LOGGER = LoggerFactory.getLogger(MapConvertUtil.class); public static Double getDoubleValue(Map<String, Object> map, String key) { BigDecimal value = getMapValue(map, key, BigDecimal.class); return value == null ? 0d : value.doubleValue(); } public static Float getFloatValue(Map<String, Object> map, String key) { BigDecimal value = getMapValue(map, key, BigDecimal.class); return value == null ? 0f : value.floatValue(); } public static Date getDateValue(Map<String, Object> map, String key) { Object value = map.get(key); return value == null ? new Date() : new Date(value.toString()); } public static Integer getIntegerValue(Map<String, Object> map, String key) { Object value = map.get(key); if(value != null) { try { return Integer.valueOf(value.toString()); } catch (Exception e) { LOGGER.error("exception message:", e); return 0; } } return 0; } public static Long getLongValue(Map<String, Object> map, String key) { Object value = map.get(key); if(value != null) { try { return Long.valueOf(value.toString()); } catch (Exception e) { LOGGER.error("exception message:", e); return 0l; } } return 0l; } public static String getStringValue(Map<String, Object> map, String key) { String value = getMapValue(map, key, String.class); return value == null ? "" : value; } public static <T> T getMapValue(Map<String, Object> map, String key, Class<T> clazz) { Object value = map.get(key); if (value == null) { return null; } return clazz.cast(value); } public static Map<String, Object> PO2Map(Object o){ Map<String, Object> map = new HashMap<String, Object>(); Field[] fields = null; try { //子类属性 fields = o.getClass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); String proName = field.getName(); Object proValue = field.get(o); map.put(proName, proValue); } //父类属性 fields = o.getClass().getSuperclass().getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); String proName = field.getName(); Object proValue = field.get(o); map.put(proName, proValue); } } catch (Exception e) { LOGGER.error("exception message:", e); } return map; } public static Object map2PO(Map<String,Object> map,Object o){ try { if (!map.isEmpty()) { for (Map.Entry<String,Object> m : map.entrySet()) { Object v = ""; if (!m.getKey().isEmpty()) { v = m.getValue(); } Field[] fields = null; //子类属性 fields = o.getClass().getDeclaredFields(); for (Field field : fields) { int mod = field.getModifiers(); if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){ continue; } if (field.getName().equals(m.getKey())) { field.setAccessible(true); field.set(o, v); } } //父类属性 fields = o.getClass().getSuperclass().getDeclaredFields(); for (Field field : fields) { int mod = field.getModifiers(); if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){ continue; } if (field.getName().equals(m.getKey())) { field.setAccessible(true); field.set(o, v); } } } } }catch (Exception e) { LOGGER.error("exception message:", e); } return o; } public static Map<String,Object> getMsgResultMap(final String msg) { return new HashMap<String, Object>(){/** */ private static final long serialVersionUID = 3883115499389307532L; { put("code", "0"); put("msg", msg); }}; } public static Map<String,Object> getDataResultMap(final Object data) { return new HashMap<String, Object>(){/** */ private static final long serialVersionUID = 2024109428179733317L; { put("code", "1"); put("msg", "success"); put("data", data); }}; } }
上一篇: CSV导入十万条数据到数据库
推荐阅读
-
Map工具类 博客分类: J2SE
-
大数据表同步 博客分类: J2SE 同步 多线程
-
新个税计算类 博客分类: 经验
-
解决使用 HBase Bulk Loading 工具出现超过32个hfile的问题,针对一个region的family 博客分类: hadoop-hbase hbasehadoopLoadIncrementalHFilescompletebulkload
-
Derby使用ij工具操作数据库 博客分类: Sql/derby derbyijjdbcij工具apache
-
hsqldb 博客分类: 开源工具 HSQLDBSQL ServerITeyeSQL脚本
-
Undefined exploded archive location 项目不能部署(转) 博客分类: JavaEE开发工具
-
Myeclipse的java工程转web工程 博客分类: JavaEE开发工具
-
Undefined exploded archive location 项目不能部署(转) 博客分类: JavaEE开发工具
-
一个关于自己定义的类,做为hashMap的key对象的例子 博客分类: java编程