Map与Object互转
来源:互联网 发布:sst nc数据下载 编辑:程序博客网 时间:2024/05/22 07:59
以前写接口时找到的方法,担心以后用到,记录下来。
/**
* 用于将object对象与map对象转换
* @author WANGJIE
*/
public class Transformation {
public static Object mapToObject(Map<String, Object> map, Class<?> beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
Method setter = property.getWriteMethod();
if (setter != null) {
setter.invoke(obj, map.get(property.getName()));
}
}
return obj;
}
public static List<Object> mapListToObjectList(
List<Map<String, Object>> mapList, Class<?> beanClass)
throws Exception {
if (mapList == null)
return null;
List<Object> objList = new ArrayList<Object>();
for (Map<String, Object> map : mapList) {
Object obj = beanClass.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo
.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
Method setter = property.getWriteMethod();
if (setter != null) {
setter.invoke(obj, map.get(property.getName()));
}
}
objList.add(obj);
}
return objList;
}
public static Map<String, Object> objectToMap(Object obj) throws Exception {
if(obj == null)
return null;
Map<String, Object> map = new HashMap<String, Object>();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (key.compareToIgnoreCase("class") == 0) {
continue;
}
Method getter = property.getReadMethod();
Object value = getter!=null ? getter.invoke(obj) : null;
map.put(key, value);
}
return map;
}
//String类型转date
public static Date StringToDate(String str,String format) throws ParseException{
SimpleDateFormat sim=new SimpleDateFormat(format);
Date d =sim.parse(str);
return d;
}
//String类型转Big
public static BigDecimal StringToBigDecimal(String str){
BigDecimal bd=new BigDecimal(str);
return bd;
}
}
实体类:
public class Users {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
测试类:
public class test {
public static void main(String[] args) {
Map<String,Object> map = new HashMap<String,Object>();
map.put("name", "www.ixiaocao.cn");
map.put("age", "21");
Transformation t = new Transformation();
try {
Users u = (Users) t.mapToObject(map, Users.class);
System.out.println(u.getName());
System.out.println(u.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}
- Map与Object互转
- java Map与Object互转
- javaBean与Map<String,Object>互转
- javaBean与Map<String,Object>互转 .
- javaBean与Map<String,Object>互转
- javaBean与Map<String,Object>互转
- javaBean与Map<String,Object>互转
- javaBean与Map<String,Object>互转
- javaBean与Map<String,Object>互转
- javaBean与Map<String,Object>互转
- javaBean与Map<String,Object>互转
- Java的Map与Object互转
- javaBean与Map<String,Object>互转
- Map与 Object转换
- map 与object之间互相转化
- Map与Object之间的转换
- Java Object与Map对象相互转换
- javaBean与Map<String,Object>相互转换
- PHP如何实现文件写入前追加,如依次写入"我 爱 你",而实现的效果是"你爱我"
- ssh 设置网络隧道及setsid 后台启动
- IMWeb提升营Day1 | 训练题3:从尾到头打印链表
- 将Entity转为Map类型
- [数据库]MySql单表多表查询常用技巧(不断更新中)
- Map与Object互转
- java中euqals和==的区别总结
- Vue.js实现多条件筛选、搜索、排序及分页的表格功能
- spring测试套件
- Q&A——UI输入(一)
- OSI七层与TCP/IP五层网络架构详解
- 【2015年第六届蓝桥杯C/C++程序设计本科B组决赛 居民集会(编程大题) 】
- 5-3-周练博客
- 总结购物车小程序知识点