首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

把一个对象转换成Map,应用BeanWrapperImpl

2012-11-04 
把一个对象转换成Map,使用BeanWrapperImplimport org.springframework.beans.BeanWrapperImplpublic clas

把一个对象转换成Map,使用BeanWrapperImpl

import org.springframework.beans.BeanWrapperImpl;

public class User {

?private String name;
?private Date birthday;
?private String[] addrs;

?public static void main(String[] args) {
??//测试把一个对象转换成Map
??User user=new User();
??user.setName("张伟");
??user.setBirthday(new Date());
??user.setAddrs(new String[]{"北京","郑州","沈阳","合肥"});
??
??Map userMap=user.toMap();
??/*
??Set set=userMap.entrySet();
??Iterator it=set.iterator();
??while(it.hasNext()){
???System.out.print(it.next());
??}*/
??Set keys=userMap.keySet();
??String key=null;
??for(Object k:keys){
???key=(String)k;
???System.out.println("?key:"+key+"??value:"+userMap.get(key));
??}
?}

?public String getName() {
??return name;
?}

?public void setName(String name) {
??this.name = name;
?}

?public Date getBirthday() {
??return birthday;
?}

?public void setBirthday(Date birthday) {
??this.birthday = birthday;
?}

?public String[] getAddrs() {
??return addrs;
?}

?public void setAddrs(String[] addrs) {
??this.addrs = addrs;
?}

?public Map toMap() {
??BeanWrapperImpl beanWrapper = new BeanWrapperImpl(this);
??PropertyDescriptor[] alldescriptors = beanWrapper
????.getPropertyDescriptors();

??int length = alldescriptors.length;
??List list = new ArrayList();

??for (int i = 0; i < alldescriptors.length; i++) {
???if (alldescriptors[i].getReadMethod() != null
?????&& alldescriptors[i].getWriteMethod() != null) {
????list.add(alldescriptors[i]);
????System.out.println(alldescriptors[i].getDisplayName());
???}
??}
??PropertyDescriptor[] descriptors = (PropertyDescriptor[]) list
????.toArray(new PropertyDescriptor[0]);

??System.out.println(descriptors.length + " list.length=" + list.size());

??// toMap
??Map properties = new HashMap(descriptors.length);
??for (int i = 0; i < descriptors.length; i++) {
???String name = descriptors[i].getName();
???properties.put(name, beanWrapper.getPropertyValue(name));
??}
??
??Set keys = properties.keySet();
??String key = null;
??for (Object k : keys) {
???key = (String) k;
???System.out.println("key: " + key + "?value:" + properties.get(key));
??}
??return properties;
?}

}

热点排行