作者:只喝大瓶的雪碧 | 来源:互联网 | 2023-09-03 13:50
1、定义实体类。/pdqdsjp包反射; 公共类用户{私有用户名称; 私密int age; public String getName () { return name; }公共语音集名称(字符串名称) { this.name=name; } public int getAge () { return age; }公共语音设置(intage ) { this.age=age; }2、从映射到对象的转换如下。 打包反射; import java.beans.BeanInfo; import java.beans.Introspector; import Java.beans.property descriptor; import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; publicclasstestmaptoobject { publicstaticvoidmain (字符串[ ] args )//假设一个map包含对象的名称和年龄映射。 object map=new hashmap map.put (' name )、' Kobi ); map.put('age ',39 ); useruser=transfermaptouser(map,User.class; system.out.println (user.getname ); system.out.println(user.getage ); } publicstaticttransfermaptouser (mapstring,Object map,ClassT classT ) try { return transfer } map,classt.new instance } ); } catch (illegalaccessexceptionex ) system.out.println (' whatthefuck?' ); }返回空值; }公共静态t传输(mapstring,Object map,Object obj ) try ) beaninfobeaninfo=introspect or.getbeaninfo ) obj.gean 属性描述符propertydescriptorproperty 3360属性描述符({ string key=property.getname ); if (图. contains key (key ) ) object value=图. get ) key; 与property对应的setter方法method setter=property.getwritemethod (; try{setter.invoke(obj,value ); } catch (illegalargumentexceptionex ) system.out.println ) ' whatthefuck?' ); }}}catch(exceptionex ) system.out.println ) ' whatthefuck?' ); }返回(t ) obj; }运行结果: run: 0Kobi39成功构建(总时间:秒) 3、Object为Map:/p package reflect; import java.beans.BeanInfo; import java.beans.Introspector; import Java.beans.property descriptor; import java.lang.reflect.Method; import java.util.Map; import java.util.TreeMap; publicclasstestobjecttomap { publicstaticvoidmain [ ] args } { useruser=new user (user.set name (kobi ) ); user.setage(39; 映射,对象映射=trans bean 2映射(user ); system.out.println (映射; }公共静态映射,objecttransbean2map(objectobj ) if ) obj==null ) {返回null; } TreeMapString,Object map=new TreeMap (; try { beaninfobeaninfo=introspect or.getbeaninfo (obj.getclass ) ); property descriptor [ ] property descriptors=bean info.getproperty descriptors (; 属性描述符propertydescriptorproperty 3360属性描述符({ string key=property.getname ); class属性if(key.equals('class ' ) ) { continue; 与property对应的getter方法method getter=property.getreadmethod (; objectvalue=Getter.invoke(obj ); map.put(key,value ); }catch(exceptione ) system.out.println (' trans bean2maperror ' e ); }返回图; }运行结果: run: 0{age=39,name=Kobi}构建成功(总时间:秒) ) ) ) ) ) )