Map數據封裝到User對象中
@Test //[內省的目標:得到Javabean屬性的讀寫方法的反射對象,通過反射對javabean屬性進行操作的 一組API] public void fun() throws IntrospectionException, IllegalAccessException, IllegalArgumentException, InvocationTargetException{ Map<String ,String> map = new HashMap<String,String>(); map.put("username","admin"); map.put("password", "123"); BeanInfo beanInfo =Introspector.getBeanInfo(User.class); //得到所有屬性描述符,每一個PropertyDescriptor對象,對應一個javaBean屬性 //getName(),getRealMethod(),getWriteMethod() PropertyDescriptor[] propertyDescriptor = beanInfo.getPropertyDescriptors(); User user = new User(); for(PropertyDescriptor pds : propertyDescriptor){ String name = pds.getName(); String value = map.get(name); if(value != null){ Method writeMethod = pds.getWriteMethod(); writeMethod.invoke(user, value); } } System.out.println(user.getUsername()+":"+user.getPassword()); }
commons-beanutils:底層使用到了內省,對內省進行了大量的簡化,
使用它 需要的jar包:commons-beanutils和commons-logging
推薦閱讀:
※「核心技術」成首屆數字中國建設峰會關鍵詞
※銳捷實戰系類 (四十六) OSPF多ASBR選路原則
※超離子冰跟太陽一樣熱!科學家已經在地球上造出
※為什麼寢室寬頻介面會有人說話的聲音?
※為什麼頂級科技公司熱愛打坐冥想|大象公會