zoukankan      html  css  js  c++  java
  • Map 和 javaBean转换

    package com.siang.util;
    
    import java.beans.BeanInfo;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.HashMap;
    import java.util.Map;
    
    import org.apache.commons.beanutils.BeanUtils;
    import org.apache.commons.beanutils.ConvertUtils;
    import org.apache.commons.beanutils.converters.DateConverter;
    
    public class BeanCopy {
    	static
    	{
    		ConvertUtils.register(new DateConverter(), java.util.Date.class);
    		ConvertUtils.register(new DateConverter(), java.sql.Date.class);
    	}
    
    	/**
    	 * @1 map to bean
    	 * @2 bean to bean 
    	 * @3 bean to map
    	 */
    	public static void 	copyProperties(Object dest, Object orig){
    		try {
    			if  (dest instanceof Map ) {//3 bean to map
    				transBean2Map((Map)dest,orig);
    			}else {
    				BeanUtils.copyProperties(dest, orig);
    			}
    		} catch (IllegalAccessException e) {
    			e.printStackTrace();
    		} catch (InvocationTargetException e) {
    			e.printStackTrace();
    		}
    	}
    	
    	/**
    	 * model to map
    	 * @param orig
    	 */
    	private static void transBean2Map(Map dest , Object orig) {
    		  try {  
    	            BeanInfo beanInfo = Introspector.getBeanInfo(orig.getClass());  
    	            PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();  
    	            for (PropertyDescriptor property : propertyDescriptors) {  
    	                String key = property.getName();  
    	                // 过滤class属性  
    	                if (!key.equals("class")) {  
    	                    // 得到property对应的getter方法  
    	                    Method getter = property.getReadMethod();  
    	                    Object value = getter.invoke(orig);  
    	                    dest.put(key, value);  
    	                }  
    	            }  
    	        } catch (Exception e) {  
    	            System.out.println("transBean2Map Error " + e);  
    	        }  
    		
    	}
    
    	public static void main(String[] args) {
    		Map<String, Object> map= new HashMap<String, Object>();
    		map.put("id", "1");
    		map.put("name", "穿林渡水");
    		User user = new User();
    		copyProperties(user , map);
    		System.out.println(user.getId() + "---" + user.getName());
    		User user1 = new User();
    		copyProperties(user1 , user);
    		System.out.println(user1.getId());
    		Map<String, Object> map2= new HashMap<String, Object>();
    		copyProperties(map2 , user);
    		System.out.println(map2);
    	}
    }
    

      

  • 相关阅读:
    十分钟抢票千余张,黄牛的抢票软件是何原理
    常见乱码解决
    如何给程序中的变量起个好名字
    jsp自定义标签
    request.getHeader("Referer")理解【转载】
    mybatis学习笔记1--HelloMybatis
    Spring学习笔记14---bean的使用
    Spring学习笔记13--Autowire(自动装配)
    Spring 学习笔记12--AOP讲解
    Spring学习笔记11--Spring 自动装配 Bean
  • 原文地址:https://www.cnblogs.com/clds/p/4918102.html
Copyright © 2011-2022 走看看