首页 > 编程知识 正文

对象转map工具类,java将对象转为map

时间:2023-05-06 20:48:29 阅读:179620 作者:430

代码参考: https://gitee.com/wcheng he/spring boot

话不多,直接贴上代码。

1 :工具类

思路:工具类如何将map转换为对应的实体类。 条目是map和对象实体类,在我们的实体类中是标准的set、get方法。 要将map转换为对应的实体类对象,map中的字段必须与我们实体类的属性字段相匹配。 获取map中的字段,将其组装为标准set方法,然后使用反射获取目标实体类对象中的此set方法,并将相应的参数放入调用中。

可能的问题: 1、映射中的字段必须与实体类对象中的字段匹配,实体类中的getset方法必须标准化; 2、利用反射会导致效率下降。

package com.wch.springboottestdemo.util; import java.lang.reflect.Field; import Java.lang.reflect.invocationtargetexception; import java.lang.reflect.Method; import java.util.Map; @suppresswarnings(all ) ) publicclassmetaclassutil(/*** )用于将地图转换为目标(@parammap ) @ param object * @ retureture @ throwsexhrows公共静态对象映射(mapstring,objectmap,Object object ) {Field[] fields=object.getClass ) ifields.length; I ({ string field name=fields [ I ].getname ); string key=touppercasefirstone (field name ); stringmapvalue=(map.get(key )==null? ' :map.get(key ).toString ); try {object.getClass ().getmethod ) set'key,String.class ).invoke ) object,mapValue ); }catch(illegalaccessexceptione )/todo auto-generatedcatchblocke.print stack trace ); } catch (illegalargumentexceptione )//todo auto-generatedcatchblocke.print stack trace ); } catch (invocationtargetexceptione )//todo auto-generatedcatchblocke.print stack trace ); }catch(nosuchmethodexceptione )/todo auto-generatedcatchblocke.print stack trace ); }catch(exceptione )//todo auto-generatedcatchblocke.print stack trace ); } }返回对象; ///首字母小写publicstaticstringtolowercasefirstone (strings ) (if ) Character.islowercase ) s.charat(0) ) )返回ELSEreturn(newstringbuilder ().append ) character.to lower case (s.charat ) ).append ) s.substring ) )1) 大写首字母publicstaticstringtouppercasefirstone (strings ) (if ) character.isupper case (s.charat ) )0) )返回s; ELSEreturn(newstringbuilder () ).append (character.toupper case ) s.charat ) ).append ) s.substring ) )1)

package com.wch.springboottestdemo.entity; import java.io.Serializable; importorg.spring framework.stereotype.com ponent; @ componentpublicclassuserimplementsserializable { privatestring username; //登录名private String password; //密码private String name; //名称public User () {super; }公共用户(string username ) {super ); this.username=username; }公共用户(string username,String password ) {super; this.username=username; this.password=password; }公共用户(string username,String password,String name ) ) {super; this.username=username; this.password=password; this.name=name; }公共字符串获取名称(() {return username; } publicvoidsetusername (string username ) {this.username=username; }公共字符串获取密码() {return password; } publicvoidsetpassword (string password ) {this.password=password; }public String getName () {return name; }publicvoidsetname(stringname ) {this.name=name; } @ overridepublicstringtostring ((return ' user [ username=' username ',password=' password ',name=' name '] ' ) )

package com.wch.springboottestdemo.Dao.impl; import java.util.Map; importorg.spring framework.beans.factory.annotation.auto wired; importorg.spring framework.cache.annotation.cacheable; importorg.spring framework.JDBC.core.JDBC template; importorg.spring framework.stereotype.service; import com.wch.springboottestdemo.Dao.userdao; import com.wch.springboottestdemo.entity.user; import com.wch.springboottestdemo.util.metaclass util; @ servicepublicclassuserdaoimplimplementsuserdao { @ autowiredprivatejdbctemplatejdbctemplate; @ overridepublicusergetuserinfobyname (string username )//todo auto-generatedmethodstubstringsql=' select password,us MapString,objectusermap=JDBC template.query formap (SQL,new Object[]{userName} ); User obj=new User (; user对象User user=(User ) metaclass util.maptoobject (user map,obj )查询的map数据; 返回用户; }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。