java CommomUtils工具类
来源:互联网 发布:雨露计划app软件 编辑:程序博客网 时间:2024/06/06 03:11
/**
* @功能描述: 将对象bean转换成Map<String, Object>
* @param obj
* @return
* @date 2017年3月26日
* @return Map<String,Object> 返回类型
* @author WEISANGENG
*/
@SuppressWarnings("unchecked")
public static <T> Map<String, Object> beanToMapTest(T obj){
Map<String, Object> retMap = null;
try {
retMap = BeanUtils.describe(obj);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
return retMap;
}
/**
* @功能描述: Bean转化为Map对象
* t为null或是map为null都不会抛出异常,
* 对象里不存在的字段属性不会转换
* @param t
* @param map
* @return
* @date 2017年3月27日
* @return T 返回类型
* @author WEISANGENG
*/
public static <T> T mapToBeanTest(T t,Map<String, Object> map){
try {
BeanUtils.populate(t,map);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return t;
}
/**
* @功能描述: 通过字段名称将list转换成Map
* 以对应的字段的值作为key,对应的对象作为value
* @param list
* @param fieldName4Key
* @param c
* @return
* @date 2017年3月31日
* @author WEISANGENG
*/
@SuppressWarnings("unchecked")
public static <K, V> Map<K, V> listToMapByFiledName(List<V> list, String keyFieldName,Class<V> c) {
Map<K, V> map = new HashMap<K, V>();
if (list != null) {
try {
//根据字段属性名称获取对应的字段信息
PropertyDescriptor propDesc = new PropertyDescriptor(keyFieldName, c);
//获取字段读的方法,即get方法
Method methodGetKey = propDesc.getReadMethod();
for (int i = 0; i < list.size(); i++) {
V value = list.get(i);
K key = (K) methodGetKey.invoke(list.get(i));
map.put(key, value);
}
} catch (Exception e) {
throw new IllegalArgumentException("field can't match the key!");
}
}
return map;
}
/**
* @功能描述: 通过方法名称将list转换成map
* 以方法对应的属性名称为key,属性对应的对象为value
* @param list
* @param keyMethodName
* @param c
* @return
* @date 2017年3月31日
* @author WEISANGENG
*/
@SuppressWarnings("unchecked")
public static <K, V> Map<K, V> listToMapByMethodName(List<V> list, String keyMethodName,Class<V> c) {
Map<K, V> map = new HashMap<K, V>();
if (list != null) {
try {
//根据方法名称获取对象方法
Method methodGetKey = c.getMethod(keyMethodName);
for (int i = 0; i < list.size(); i++) {
V value = list.get(i);
//根据对象反射原理获取属性名称
K key = (K) methodGetKey.invoke(list.get(i));
map.put(key, value);
}
} catch (Exception e) {
throw new IllegalArgumentException("field can't match the key!");
}
}
return map;
}
- java CommomUtils工具类
- java文件工具类
- java日期工具类
- java 绝对路径工具类
- java工具类
- Java 数据处理工具类
- java日期工具类
- java工具类Assert
- 一些Java工具类
- anroid&java工具类
- java StringUtil 工具类
- java身份证号工具类
- java 日期工具类
- Java开发工具类
- java 加密工具类
- java集合工具类
- java时间工具类
- java 时间工具类
- Can't process attribute android:fillColor="@color/text_gray": references to other resources are not
- c++实现顺序表
- 10/21/22作业
- HAOI 2010 软件安装(Tarjan+树形dp)
- Web Service (014---webservice使用Jquery、Ajax请求WebService所遇到的跨域问题)
- java CommomUtils工具类
- my stl study-road<template.1>
- Gym 100112AAaah!
- 当装了多个tomcat后,如何修改tomcat端口
- python3 类对象的定义、方法
- JQGrid 动态添加 Select
- 直方图均衡原理及Matlab实现
- 天池历届大赛答辩PPT及视频
- Struts2:二