import java.beans.BeanInfo;
import java.beans.IntrospectionException;
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;
/**
* JavaBean and map converter.
*
*
*/
public final class BeanMapUtils {
/**
* Converts a map to a JavaBean.
*
* @param type type to convert
* @param map map to convert
* @return JavaBean converted
* @throws IntrospectionException failed to get class fields
* @throws IllegalAccessException failed to instant JavaBean
* @throws InstantiationException failed to instant JavaBean
* @throws InvocationTargetException failed to call setters
*/
public static final Object toBean(Class<?> type, Map<String, ? extends Object> map)
throws IntrospectionException, IllegalAccessException, InstantiationException, InvocationTargetException {
BeanInfo beanInfo = Introspector.getBeanInfo(type);
Object obj = type.newInstance();
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (int i = 0; i< propertyDescriptors.length; i++) {
PropertyDescriptor descriptor = propertyDescriptors[i];
String propertyName = descriptor.getName();
if (map.containsKey(propertyName)) {
Object value = map.get(propertyName);
Object[] args = new Object[1];
args[0] = value;
descriptor.getWriteMethod().invoke(obj, args);
}
}
return obj;
}
/**
* Converts a JavaBean to a map
*
* @param bean JavaBean to convert
* @return map converted
* @throws IntrospectionException failed to get class fields
* @throws IllegalAccessException failed to instant JavaBean
* @throws InvocationTargetException failed to call setters
*/
public static final Map<String, Object> toMap(Object bean)
throws IntrospectionException, IllegalAccessException, InvocationTargetException {
Map<String, Object> returnMap = new HashMap<String, Object>();
BeanInfo beanInfo = Introspector.getBeanInfo(bean.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (int i = 0; i< propertyDescriptors.length; i++) {
PropertyDescriptor descriptor = propertyDescriptors[i];
String propertyName = descriptor.getName();
if (!propertyName.equals("class")) {
Method readMethod = descriptor.getReadMethod();
Object result = readMethod.invoke(bean, new Object[0]);
if (result != null) {
returnMap.put(propertyName, result);
} else {
returnMap.put(propertyName, "");
}
}
}
return returnMap;
}
<span style="white-space:pre"> public</span> static final Map<String, String> toStringMap(Object bean) {
<span style="white-space:pre"> if (bean == null) {return null;
<span style="white-space:pre"> </span><span style="white-space:pre"> </span></span>}
<span style="white-space:pre"> Map<String, String> returnMap = new HashMap<String, String>();</span>
<span style="white-space:pre"> BeanInfo beanInfo;
<span style="white-space:pre"> </span>try {</span>
}

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java交换map的key和value值
Java交换map的key和value值
键值对 Java System -
JavaBean(对象)、Map、JSONObject 之间的相互转换
JavaBean(对象)、Map、JSONObject 互转,如此简单!
java json map javabean 对象 -
javabean、xml、json、map之间的相互转换
javabean转map利用cglib的BeanMap类实现转换import org.springframework.cglib.be
javabean xml json map java -
json转map JavaBean(对象)、Map、JSONObject 之间的相互转换
完整代码
java json map javabean 对象 -
Java:Bean实体对象和Map互相转换
本文介绍Java的Bean实体对象和Map互相转换的几种方法。
java 开发语言 System 工具类 xml -
Map和JSON的互相转换
JSON-Lib方式 Jackson方式
Java编程 json json数据 html 数组 -
JavaBean和Map转换封装类
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.
JAVA javabean map javabean map 工具类 javabean转map map转javabean -
java对象和json对象之间互相转换
Json数组转List对象
json java json对象 java对象 json数组