Java 通过反射原理,通过Map转为Java POJO对象,适用于对象包含List,Map,数组等

这篇博客介绍了如何使用Java反射机制将Map转换为包含List、Map和数组的Java POJO对象。核心在于遍历Map,通过反射设置对象属性值。文章详细解释了获取set方法、判断参数类型(包括基本类型、数组和泛型集合)的过程,并特别提到了处理泛型List时的注意事项和可能出现的问题。
摘要由CSDN通过智能技术生成

前言:   当对象的属性过多时,通过一个一个get很影响效率,同时看代码也不方便,利用反射原理,可以解决这个问题。
对象中,成员变量可能有String,int,double,关键是当包含了List,Map此类集合的成员变量,这种集合类的成员变量要如何去赋值呢?


先不考虑具体的实现,我们先定义方法头,public  void(Map map,Object  object) 

方法体应该是具体的操作了,放上我实现的方法体吧

/**
	 * 根据map给值对象赋值,要赋值的字段由map指定
	 */
	public static void mapToObject(Map<String,Object> map,Object o){
		ReflectUtil util = new ReflectUtil();
		util.registerClass(o.getClass());
		Iterator<Entry<String, Object>> iter = map.entrySet().iterator();
		while (iter.hasNext()) {
		Map.Entry<String,Object> entry = (Map.Entry<String,Object>) iter.next();
		String key = (String) entry.getKey();
		Object val = entry.getValue();
		util.setValue(key, val, o);	
		}	
	}


简而言之,就是遍历Map去获取map中设定的字段和值的对应,然后通过ReflectUtil 根据反射去设置对象的属性值

package com.shenzhenair.util;

import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

im
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值