当前位置: 移动技术网 > IT编程>开发语言>Java > JavaBean和Map转换封装类的方法

JavaBean和Map转换封装类的方法

2019年07月22日  | 移动技术网IT编程  | 我要评论

丰台总部基地,3u8858,都市传说之极品僵尸

实例如下:

package com.ljq.util;

import java.beans.beaninfo;
import java.beans.introspector;
import java.beans.propertydescriptor;
import java.lang.reflect.method;
import java.util.arraylist;
import java.util.hashmap;
import java.util.list;
import java.util.map;


/**
 * map工具类
 *
 * @author jqlin
 */
public class maputils {

  /**
   * 从map集合中获取属性值
   * 
   * @param <e>
   * @param map
   *      map集合
   * @param key
   *      键对
   * @param defaultvalue
   *      默认值
   * @return
   * @author jiqinlin
   */
  @suppresswarnings({ "unchecked", "rawtypes" })
  public final static <e> e get(map map, object key, e defaultvalue) {
    object o = map.get(key);
    if (o == null)
      return defaultvalue;
    return (e) o;
  }
  
  /**
   * map集合对象转化成 javabean集合对象
   * 
   * @param javabean javabean实例对象
   * @param maplist map数据集对象
   * @return
   * @author jqlin
   */
  @suppresswarnings({ "rawtypes" })
  public static <t> list<t> map2java(t javabean, list<map> maplist) {
    if(maplist == null || maplist.isempty()){
      return null;
    }
    list<t> objectlist = new arraylist<t>();
    
    t object = null;
    for(map map : maplist){
      if(map != null){
        object = map2java(javabean, map);
        objectlist.add(object);
      }
    }
    
    return objectlist;
    
  }
  
  /**
   * map对象转化成 javabean对象
   * 
   * @param javabean javabean实例对象
   * @param map map对象
   * @return
   * @author jqlin
   */
  @suppresswarnings({ "rawtypes","unchecked", "hiding" })
  public static <t> t map2java(t javabean, map map) {
    try {
      // 获取javabean属性
      beaninfo beaninfo = introspector.getbeaninfo(javabean.getclass());
      // 创建 javabean 对象
      object obj = javabean.getclass().newinstance();

      propertydescriptor[] propertydescriptors = beaninfo.getpropertydescriptors();
      if (propertydescriptors != null && propertydescriptors.length > 0) {
        string propertyname = null; // javabean属性名
        object propertyvalue = null; // javabean属性值
        for (propertydescriptor pd : propertydescriptors) {
          propertyname = pd.getname();
          if (map.containskey(propertyname)) {
            propertyvalue = map.get(propertyname);
            pd.getwritemethod().invoke(obj, new object[] { propertyvalue });
          }
        }
        return (t) obj;
      }
    } catch (exception e) {
      e.printstacktrace();
    }

    return null;
  }

  /**
   * javabean对象转化成map对象
   * 
   * @param javabean
   * @return
   * @author jqlin
   */
  @suppresswarnings({ "rawtypes", "unchecked" })
  public static map java2map(object javabean) {
    map map = new hashmap();
     
    try {
      // 获取javabean属性
      beaninfo beaninfo = introspector.getbeaninfo(javabean.getclass());

      propertydescriptor[] propertydescriptors = beaninfo.getpropertydescriptors();
      if (propertydescriptors != null && propertydescriptors.length > 0) {
        string propertyname = null; // javabean属性名
        object propertyvalue = null; // javabean属性值
        for (propertydescriptor pd : propertydescriptors) {
          propertyname = pd.getname();
          if (!propertyname.equals("class")) {
            method readmethod = pd.getreadmethod();
            propertyvalue = readmethod.invoke(javabean, new object[0]);
            map.put(propertyname, propertyvalue);
          }
        }
      }
      
    } catch (exception e) {
      e.printstacktrace();
    } 
    
    return map;
  }
 
}

以上就是小编为大家带来的javabean和map转换封装类的方法全部内容了,希望大家多多支持移动技术网~

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网