java实现map和object互转的三种方法详解编程语言
2023-06-13 09:20:28 时间
public static Object mapToObject(Map String, Object map, Class ? beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
org.apache.commons.beanutils.BeanUtils.populate(obj, map);
return obj;
public static Map ?, ? objectToMap(Object obj) {
if(obj == null)
return null;
return new org.apache.commons.beanutils.BeanMap(obj);
* 使用Introspector进行转换
class B {
public static Object mapToObject(Map String, Object map, Class ? beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
Method setter = property.getWriteMethod();
if (setter != null) {
setter.invoke(obj, map.get(property.getName()));
return obj;
public static Map String, Object objectToMap(Object obj) throws Exception {
if(obj == null)
return null;
Map String, Object map = new HashMap String, Object
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();
Object value = getter!=null ? getter.invoke(obj) : null;
map.put(key, value);
return map;
* 使用reflect进行转换
class C {
public static Object mapToObject(Map String, Object map, Class ? beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
if(Modifier.isStatic(mod) || Modifier.isFinal(mod)){
continue;
field.setAccessible(true);
field.set(obj, map.get(field.getName()));
return obj;
public static Map String, Object objectToMap(Object obj) throws Exception {
if(obj == null){
return null;
Map String, Object map = new HashMap String, Object
Field[] declaredFields = obj.getClass().getDeclaredFields();
for (Field field : declaredFields) {
field.setAccessible(true);
map.put(field.getName(), field.get(obj));
return map;
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10218.html
cjava相关文章
- java工具类-Java对象转换成Map
- protostuff java_Protostuff一键序列化工具、Protobuf JAVA实现
- java生成时间戳类型_Java获取当前时间戳的方法有哪些
- 说一下java的运行机制_Java运行机制是什么?「建议收藏」
- java setproperty 未生效_Java System类setProperty()方法及示例[通俗易懂]
- 【说站】java Map如何进行转换
- ringbuffer java例子_Java RingBuffer.publish方法代碼示例「建议收藏」
- Java 8 的 java.util.function.* POJO 的反射新方法
- JAVA生成uuid_java接口default方法
- 反编译Java_java反编译的代码可以修改么
- Java中Map集合常见使用
- Java Stream 解析和使用技巧
- java语言遍历MAP的常用方法详解编程语言
- 程序Linux下构建Java应用:从入门到精通(linux下开发java)
- 利用Redis存储Java对象的方法(redis存储java对象)
- Java Map.containsKey()方法:判断Map集合对象中是否包含指定的键名
- Java 8为Map新增的方法
- 使用Java连接Linux服务器的简单方法(java连接linux)
- 如何使用Java备份Oracle数据库?(java备份oracle)
- Java编程实现MySQL数据库连接(java连mysql数据库)
- Java应用在Linux上乱码的原因及解决方法(java linux乱码)
- Java锁表与Oracle数据库协调实现数据安全(java锁表oracle)
- 实现Java认证让你离Oracle更近一步(java认证oracle)
- Java中Map的遍历方法及性能测试