JavaBean和Map的相互转换-Java基础加强总结

哈哈 阅读:234 2021-06-03 14:48:49 评论:0

涉及内容:

Java反射机制:IT虾米网

JavaBean规范:IT虾米网

Java内省机制:IT虾米网

package com.passer.introspector; 
 
import java.beans.BeanInfo; 
import java.beans.Introspector; 
import java.beans.PropertyDescriptor; 
import java.util.HashMap; 
import java.util.Map; 
import java.util.Map.Entry; 
 
public class BeanUtils { 
	public static void main(String []args) throws Exception { 
		User user=new User(); 
		user.setName("passer"); 
		user.setDescri("cool"); 
		Map<Object,Object> map=bean2map(user); 
		System.out.println(map); 
		 
		Object obj=map2bean(map,User.class); 
		System.out.println(obj); 
	} 
 
	private static <T> T map2bean(Map<Object,Object> map,Class<T> beanType) throws Exception { 
		T t=beanType.newInstance(); 
		PropertyDescriptor [] pds=Introspector.getBeanInfo(beanType,Object.class) 
				.getPropertyDescriptors(); 
		for (PropertyDescriptor pd : pds) { 
			for (Entry entry : map.entrySet()) { 
				if(entry.getKey().equals(pd.getName())) { 
					pd.getWriteMethod().invoke(t, entry.getValue()); 
				} 
			} 
		} 
		return t; 
	} 
	 
	private static Map<Object,Object> bean2map(Object bean) throws Exception { 
		 
		Map<Object,Object> map=new HashMap<>(); 
		BeanInfo info=Introspector.getBeanInfo(bean.getClass(),Object.class); 
		PropertyDescriptor []pds=info.getPropertyDescriptors(); 
		for(PropertyDescriptor pd:pds) { 
			Object key=pd.getName(); 
			Object value= pd.getReadMethod().invoke(bean); 
			map.put(key, value); 
		}		 
		return map;		 
	} 
} 


标签:java
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
KIKK导航

KIKK导航

关注我们