java中map参数封装到bean_JavaBean和Map转换封装类详解
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转换封装类详解相关推荐
- java中String s=abc及String s=new String(abc)详解
java中String s="abc"及String s=new String("abc")详解 1. 栈(stack)与堆(heap)都是Java用来在R ...
- java中创建线程的四种方式及线程池详解
众所周知,我们在创建线程时有四种方法可以用,分别是: 1.继承Thread类创建线程 2.实现Runnable接口创建线程 3.使用Callable和Future创建线程 4.使用线程池创建(使用ja ...
- java中final是修饰符么_Java final修饰符详解
final 在 Java 中的意思是最终,也可以称为完结器,表示对象是最终形态的,不可改变的意思.final 应用于类.方法和变量时意义是不同的,但本质是一样的,都表示不可改变. 使用 final 关 ...
- java中printf,print,println,区别及用法详解
此题是蓝桥杯的一道竞赛试题,在编写程序时,遇到了printf的用法,不是很熟悉,特此总结一下. 以下是对Java中print.printf.println的区别进行了详细的分析介绍,需要的朋友可以过来 ...
- Java中的String数据类型,String类(字符串)详解
目录 第一章.String概述 1)String是什么 2)String长什么样 3)String的构造方法(声明方式) 第二章.String类的详解 1)String底层是什么 2)字符串存储的内存 ...
- java中循环语句_Java语法基础之循环结构语句详解
一.循环结构 循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循 ...
- java中csv文件怎么制作_Java生成CSV文件实例详解
本文实例主要讲述了Java生成CSV文件的方法,具体实现步骤如下: 1.新建CSVUtils.java文件: package com.saicfc.pmpf.internal.manage.utils ...
- java中elapseTime设置新时间,Jmeter系列(44)- 详解 Elapsed time、Latency、Connect Time的含义...
如果你想从头学习Jmeter,可以看看这个系列的文章哦 前言 在 Jmeter 中一些专业名词我们是需要提前认知的,如下 Elapsed time Latency Connect Time ===== ...
- java中定义score方法_elasticsearch 自定义 script score JavaAPI查询详解
一:自定义score的应用场景 先打个比方,比如新产品上架了,我想让最新上架的产品搜索时候,排在前面,怎么办呢?很简单按时间排序.嗯这种方法很好实现. 但下面又有个需求,比如我要求排序中上架时间的比重 ...
最新文章
- DataGridView取得或者修改当前单元格的内容
- 【python教程入门学习】Python零基础入门爬虫项目
- LeetCode 215. Kth Largest Element in an Array--数字第K大的元素--最大堆或优先队列--C++,Python解法
- linux中流设备_Linux设备驱动子系统终极弹
- SQLServer 错误: 15404,无法获取有关 Windows NT 组/用户
- 【Python】用 Highcharts 绘制饼图,也很强大
- monotouch Single View Application
- 利用python爬虫(part4)--requests模块之requests.get方法
- OCP-052考试题库汇总(58)-CUUG内部解答版
- python 字符串替换多个_python同时替换多个字符串方法示例
- BZOJ1096-[ZJOI2007]仓库建设
- Matlab之eval函数
- .tar文件和.tar.gz文件
- 自动化测试环境搭建--Python及selenium
- OneNote 安装代码高亮插件 NoteHightlight的安装及使用基础教程
- android 投屏 版本号,安卓设备投屏画质模糊及投屏延迟的调整方法
- 解决Failing package is:mysql-community-icu-data-files-8.0.29-1.el7.x86_64 GPG Keys are configured as..
- 简易社团管理系统(jsp+servlet+三件套+未完成)
- 【更新】本地提权工具公开|CVE-2020-0796:微软发布SMBv3协议“蠕虫级”漏洞补丁通告
- GameStop的下半场:散户疯狂复仇,大空头彻底投降,但“世纪逼空大战”远未结束...
热门文章
- Flask 源码解析:session
- 2021年中国机构调研概况分析(附总次数、行业分布、投融资情况)[图]
- 2021第十三届中国最佳酒店大奖榜单揭晓:年度最佳酒店、最佳顶级奢华酒店、最佳城市地标酒店...
- 无老师作文巨讲堂连载【2015年上半年全集】|托福作文满分必备
- cocos之游戏手柄控制实例
- 深度学习相关基础理论
- rk3568 android11 PCIE接Intel I350网卡
- c语言搬山游戏,C语言实例:搬山游戏
- 怎么删除批注mysql_如何去掉 Word 文档修订和批注和不显示已删除内容
- 12306火车票助手