day27(反射之内省机制实现BeanUtils)
Posted fjk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day27(反射之内省机制实现BeanUtils)相关的知识,希望对你有一定的参考价值。
使用内省方式来实现beanUtils往对象里面存值
public class BeanInfoUtil2 { public static void setPropertyByIntrospector(Object userInfo, Map<String,Object> map) throws Exception { //map key=name value=value BeanInfo beanInfo = Introspector.getBeanInfo(userInfo.getClass()); PropertyDescriptor[] proDescrtptors = beanInfo.getPropertyDescriptors(); if (proDescrtptors != null && proDescrtptors.length > 0) { for (PropertyDescriptor propDesc : proDescrtptors) { Method method = propDesc.getWriteMethod(); if (null==method) { continue; } for (String keys : map.keySet()) { if (method.getName().equals("set"+keys)) { method.invoke(userInfo, map.get(keys)); } } } } } }
测试类
Student s=new Student(); Map<String,Object> map=new HashMap<String,Object>(); map.put("Name", "张三"); map.put("Age", 15); BeanInfoUtil2.setPropertyByIntrospector(s, map); System.out.println(s.getName()); System.out.println(s.getAge());
以上是关于day27(反射之内省机制实现BeanUtils)的主要内容,如果未能解决你的问题,请参考以下文章
java学习--基础知识进阶第十三天--反射机制的概述和字节码对象的获取方式反射操作构造方法成员方法成员属性JavaBean的概述&BeanUtils的使用自定义BeanUtils工
JAVA中反射机制五(JavaBean的内省与BeanUtils库)