博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaBean和Map相互转换
阅读量:3749 次
发布时间:2019-05-22

本文共 2033 字,大约阅读时间需要 6 分钟。

Jdk bean转map

import java.beans.BeanInfo;import java.beans.IntrospectionException;import java.beans.Introspector;import java.beans.PropertyDescriptor;import java.beans.Transient;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.HashMap;import java.util.Map;public class Tools {
public static Map
beanToMap(Object obj) {
try {
Map
map = new HashMap(); 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(); Transient annotation = getter.getAnnotation(Transient.class); if (annotation == null) {
Object value = getter != null ? getter.invoke(obj) : null; map.put(key, value); } } return map; } catch (IntrospectionException | IllegalAccessException | InvocationTargetException e) {
throw new IllegalArgumentException(e.getMessage()); } }}

apache bean和map互转

import org.apache.commons.beanutils.BeanUtils;private Map beanToMap(Object obj) {
try {
return BeanUtils.describe(obj); } catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
e.printStackTrace(); } return null;}private List
mapToBean(List
> data, Class
clazz) {
List
list = new ArrayList<>(); try {
for (int i = 0; i < data.size(); i++) {
Object newInstance = clazz.newInstance(); Map
map = data.get(i); BeanUtils.populate(newInstance, map); list.add(newInstance); } return list; } catch (Exception e) {
} return null;}

转载地址:http://ovcsn.baihongyu.com/

你可能感兴趣的文章
微服务架构(二):融入微服务的企业集成架构
查看>>
【程序员必看】如何用Python从0开始创建一个区块链?
查看>>
程序猿们,别着急入手区块链,先给自己选好武林门派再练功不迟
查看>>
教你仅用15分钟在以太坊编写一个区块链Web应用
查看>>
版本控制
查看>>
几种常用的版本控制系统优缺点比较
查看>>
版本控制:SVN和GIT的一些使用感受
查看>>
RAID 技术全解
查看>>
DELL R720 服务器 RAID阵列卡配置介绍
查看>>
SVN服务器部署并实现双机同步及禁止普通用户删除文件
查看>>
SVN服务器搭建和使用(一)
查看>>
SVN服务器搭建和使用(二)
查看>>
SVN服务器搭建和使用(三)
查看>>
文件服务器的配置与管理(1) RAID技术
查看>>
文件服务器的配置与管理(2) 实现软RAID
查看>>
文件服务器的配置与管理(3) 共享文件夹的创建与使用
查看>>
TortoiseSVN新人使用指南
查看>>
visual svn使用教程
查看>>
版本控制系统客户端VisualSVN的安装与使用(for Visual Studio)
查看>>
小白教程:Visual Studio2017配置GitHub图文教程
查看>>