为什么死亡之舞3 致命欺骗件套属性有男格斗有两个一样的属性值

最近遇到一个问题,要完成两个对象之间的复制,也就是根据对象A的属性值生成对应的对象B。其中A与B的属性名不同,但是其实是一个东西。前后交了不同的名字而已。因为会后很多的这样的情况,不可能每一个对象都写一个方法。我寻求一种通用的方法。网上找到BeanUtils.copyProperties()等方法copy对象要求属性名一致才可以复制。。研究了一天最后自己解决。特此贴出来给同样碰到此问题的同学们分享!!思路就是,在每一个后台对象中添加与前端对象的的属性名映射表例如Map&String,string&&param.put(&name&,&id&)..
然后写一个工具方法完成如下功能:
&利用反射获得A的属性名数组,使用new&CglibBean(temp)动态生成对应的转换了属性名的Object对象。(CglibBean用法请百度)。然后使用PropertyUtils.copyProperties(k,&object);完成对象复制。具体看代码自己领悟:
------------------------------------------------------------------------------------------------------------------------------------------------
import&java.lang.reflect.F
import&java.lang.reflect.InvocationTargetE
import&java.util.HashM
import&java.util.M
import&mons.beanutils.PropertyU
import&com.xiao2edu.setcfg.server.entity.TeacherP
import&com.xiao2edu.setcfg.server.param.StringParam1;
public&class&BeanConvert&{
//k为对应的实体对象,J为StringParam对象,param为属性名对应表
public&static&Object&getObject(Object&k,Object&j,Map&String,String&&param)&throws&ClassNotFoundException,&IllegalArgumentException,&IllegalAccessException,&InvocationTargetException,&NoSuchMethodException{
//BeanUtils.copyProperties(k,&j,&str);
/*BeanUtils.copyProperties(k,&j);*/
//获取实体对象属性名数组
Field[]&fields=j.getClass().getDeclaredFields();
//属性名,属性类型
Map&String&,&Class&&temp=new&HashMap&&();
//属性名,属性值
Map&String&,&String&&valueParam=new&HashMap&&();
for(Field&f:fields){
//设置访问权限,否则不能访问私有化属性
f.setAccessible(true);
//转换属性名,属性类型
temp.put(param.get(f.getName()),&Class.forName(&java.lang.String&));
/*System.out.println(&kanxia&+f.getName());
System.out.println(&属性名&+param.get(f.getName()));
String&value=&&;
Object&valueObject=f.get(j);
if(valueObject!=null){
value=valueObject.toString();
valueParam.put(param.get(f.getName()),&value);
//System.out.println(&哈哈&+valueParam.toString());
//System.out.println(&AAA:&+temp.toString());
//根据参数数组生成CglibBean对象
CglibBean&cglibBean=new&CglibBean(temp);
for(Map.Entry&String,&String&&entry:valueParam.entrySet()){
//System.out.println(entry.getKey());
cglibBean.setValue(entry.getKey(),&entry.getValue());
Object&object=cglibBean.getObject();
//用object给K赋值
PropertyUtils.copyProperties(k,&object);
public&static&&void&main(String[]&args)&throws&ClassNotFoundException,&IllegalArgumentException,&IllegalAccessException,&InvocationTargetException,&NoSuchMethodException{
TeacherPeriod&teacherPeriod=new&TeacherPeriod();
StringParam1&stringParam1=new&StringParam1(&11&,&22&,&33&,&44&);
teacherPeriod=(TeacherPeriod)&getObject(&teacherPeriod&,stringParam1,teacherPeriod.getMapping());
System.out.println(stringParam1.getA());
System.out.println(teacherPeriod.toString());
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:994次
排名:千里之外
原创:12篇
(1)(6)(6)(1)后使用快捷导航没有帐号?
查看: 3780|回复: 6
新人欢迎积分0 阅读权限30积分101精华0UID帖子金钱240 威望0
Lv.3, 积分 101, 距离下一级还需 149 积分
UID帖子威望0 多玩草0 草
新人欢迎积分0 阅读权限30积分101精华0UID帖子金钱240 威望0
Lv.3, 积分 101, 距离下一级还需 149 积分
UID帖子威望0 多玩草0 草
13:31:38 上传
新人欢迎积分1 阅读权限60积分3242精华0UID帖子金钱17825 威望0
Lv.6, 积分 3242, 距离下一级还需 1758 积分
UID帖子威望0 多玩草0 草
发表自UC浏览器
散件我可以加地灵,猎者,遗迹手,提升不是更好?
【外部图片】
新人欢迎积分1 阅读权限40积分744精华0UID帖子金钱3522 威望-1
Lv.4, 积分 744, 距离下一级还需 256 积分
UID帖子威望-1 多玩草50 草
禁忌丶极鬼づ流魅 发表于
散件我可以加地灵,猎者,遗迹手,提升不是更好?
看好。。左右槽加入了!
新人欢迎积分0 阅读权限60积分4979精华0UID帖子金钱15501 威望0
诶!有些时候,有些事情,必须自己亲自动手解决才行。
Lv.6, 积分 4979, 距离下一级还需 21 积分
UID帖子威望0 多玩草5 草
额,那个炽焰旋风腿怎么有两个减50%CD的效果?是BUG吗?
新人欢迎积分0 阅读权限50积分1541精华0UID帖子金钱5382 威望0
Lv.5, 积分 1541, 距离下一级还需 959 积分
UID帖子威望0 多玩草0 草
禁忌丶极鬼づ流魅 发表于
散件我可以加地灵,猎者,遗迹手,提升不是更好?
死6就不可以地灵,灵魂 遗迹&&骨戒?&&左右是假的?
新人欢迎积分1 阅读权限60积分4273精华0UID5877942帖子金钱10867 威望1
Lv.6, 积分 4273, 距离下一级还需 727 积分
UID5877942帖子威望1 多玩草191 草
禁忌丶极鬼づ流魅 发表于
散件我可以加地灵,猎者,遗迹手,提升不是更好?
你活在上个世纪?
元宝专属一阶勋章。已绝版
需要金钱:1100
手机盒子客户端点击或扫描下载
Powered by

我要回帖

更多关于 死亡之舞 游戏 的文章

 

随机推荐