使用内省方式来实现beanUtils往对象里面存值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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)); } } } } } } |
测试类
1 2 3 4 5 6 7 | 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()); |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步