packagecom.ljq.util;importjava.beans.BeanInfo;importjava.beans.Introspector;importjava.beans.PropertyDescriptor;importjava.lang.reflect.Method;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.List;importjava.util.Map;/*** Map工具类

*

*@authorjqlin*/

public classMapUtils {/*** 从map集合中获取属性值

*

*@param

*@parammap

* map集合

*@paramkey

* 键对

*@paramdefaultValue

* 默认值

*@return*@authorjiqinlin*/@SuppressWarnings({"unchecked", "rawtypes"})public final static E get(Map map, Object key, E defaultValue) {

Object o=map.get(key);if (o == null)returndefaultValue;return(E) o;

}/*** Map集合对象转化成 JavaBean集合对象

*

*@paramjavaBean JavaBean实例对象

*@parammapList Map数据集对象

*@return*@authorjqlin*/@SuppressWarnings({"rawtypes"})public static List map2Java(T javaBean, ListmapList) {if(mapList == null ||mapList.isEmpty()){return null;

}

List objectList = new ArrayList();

T object= null;for(Map map : mapList){if(map != null){

object=map2Java(javaBean, map);

objectList.add(object);

}

}returnobjectList;

}/*** Map对象转化成 JavaBean对象

*

*@paramjavaBean JavaBean实例对象

*@parammap Map对象

*@return*@authorjqlin*/@SuppressWarnings({"rawtypes","unchecked", "hiding"})public static 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,newObject[] { propertyValue });

}

}return(T) obj;

}

}catch(Exception e) {

e.printStackTrace();

}return null;

}/*** JavaBean对象转化成Map对象

*

*@paramjavaBean

*@return*@authorjqlin*/@SuppressWarnings({"rawtypes", "unchecked"})public staticMap java2Map(Object javaBean) {

Map map= newHashMap();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();

}returnmap;

}

}

java中map参数封装到bean_JavaBean和Map转换封装类详解相关推荐

  1. java中String s=abc及String s=new String(abc)详解

    java中String s="abc"及String s=new String("abc")详解 1.   栈(stack)与堆(heap)都是Java用来在R ...

  2. java中创建线程的四种方式及线程池详解

    众所周知,我们在创建线程时有四种方法可以用,分别是: 1.继承Thread类创建线程 2.实现Runnable接口创建线程 3.使用Callable和Future创建线程 4.使用线程池创建(使用ja ...

  3. java中final是修饰符么_Java final修饰符详解

    final 在 Java 中的意思是最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思.final 应用于类.方法和变量时意义是不同的,但本质是一样的,都表示不可改变. 使用 final 关 ...

  4. java中printf,print,println,区别及用法详解

    此题是蓝桥杯的一道竞赛试题,在编写程序时,遇到了printf的用法,不是很熟悉,特此总结一下. 以下是对Java中print.printf.println的区别进行了详细的分析介绍,需要的朋友可以过来 ...

  5. Java中的String数据类型,String类(字符串)详解

    目录 第一章.String概述 1)String是什么 2)String长什么样 3)String的构造方法(声明方式) 第二章.String类的详解 1)String底层是什么 2)字符串存储的内存 ...

  6. java中循环语句_Java语法基础之循环结构语句详解

    一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...

  7. java中csv文件怎么制作_Java生成CSV文件实例详解

    本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...

  8. java中elapseTime设置新时间,Jmeter系列(44)- 详解 Elapsed time、Latency、Connect Time的含义...

    如果你想从头学习Jmeter,可以看看这个系列的文章哦 前言 在 Jmeter 中一些专业名词我们是需要提前认知的,如下 Elapsed time Latency Connect Time ===== ...

  9. java中定义score方法_elasticsearch 自定义 script score JavaAPI查询详解

    一:自定义score的应用场景 先打个比方,比如新产品上架了,我想让最新上架的产品搜索时候,排在前面,怎么办呢?很简单按时间排序.嗯这种方法很好实现. 但下面又有个需求,比如我要求排序中上架时间的比重 ...

最新文章

  1. DataGridView取得或者修改当前单元格的内容
  2. 【python教程入门学习】Python零基础入门爬虫项目
  3. LeetCode 215. Kth Largest Element in an Array--数字第K大的元素--最大堆或优先队列--C++,Python解法
  4. linux中流设备_Linux设备驱动子系统终极弹
  5. SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户
  6. 【Python】用 Highcharts 绘制饼图,也很强大
  7. monotouch Single View Application
  8. 利用python爬虫(part4)--requests模块之requests.get方法
  9. OCP-052考试题库汇总(58)-CUUG内部解答版
  10. python 字符串替换多个_python同时替换多个字符串方法示例
  11. BZOJ1096-[ZJOI2007]仓库建设
  12. Matlab之eval函数
  13. .tar文件和.tar.gz文件
  14. 自动化测试环境搭建--Python及selenium
  15. OneNote 安装代码高亮插件 NoteHightlight的安装及使用基础教程
  16. android 投屏 版本号,安卓设备投屏画质模糊及投屏延迟的调整方法
  17. 解决Failing package is:mysql-community-icu-data-files-8.0.29-1.el7.x86_64 GPG Keys are configured as..
  18. 简易社团管理系统(jsp+servlet+三件套+未完成)
  19. 【更新】本地提权工具公开|CVE-2020-0796:微软发布SMBv3协议“蠕虫级”漏洞补丁通告
  20. GameStop的下半场:散户疯狂复仇,大空头彻底投降,但“世纪逼空大战”远未结束...

热门文章

  1. Flask 源码解析:session
  2. 2021年中国机构调研概况分析(附总次数、行业分布、投融资情况)[图]
  3. 2021第十三届中国最佳酒店大奖榜单揭晓:年度最佳酒店、最佳顶级奢华酒店、最佳城市地标酒店...
  4. 无老师作文巨讲堂连载【2015年上半年全集】|托福作文满分必备
  5. cocos之游戏手柄控制实例
  6. 深度学习相关基础理论
  7. rk3568 android11 PCIE接Intel I350网卡
  8. c语言搬山游戏,C语言实例:搬山游戏
  9. 怎么删除批注mysql_如何去掉 Word 文档修订和批注和不显示已删除内容
  10. 12306火车票助手