急!急!高效从复杂对象(嵌套多层)中获取目标属性值并替换该值的解决办法

一路奔跑1314 2019-01-08 09:49:13
问题描述:
比如有一个复杂对象BigBO,里面的属性也是各种类型的BO或者List<BO>,而且BO属性中还可能嵌套小bo,存在多层嵌套情况。

需求是:
从这个BigBO中找到某个特定属性(也就是知道属性名,且在bigBO中没有同名属性,且寻找的属性类型为String。可能存在多个,存在对个情况是针对list<BO>)的值,并替换成其他值。

其他说明:复杂对象不固定

业务场景:我要把一些方法的入参(入参就是BigBO)中找到特定属性,并把该属性值替换成其他值。

我的解决方法:
是利用递归遍历复杂对象BigBO,找到目标属性并替换其值,但是效率比较慢。
我在递归遍历时对于不包含目标属性的bo不会遍历,且不遍历系统类,来减少无效的遍历。


请问各位大神,还有没有其他解决思路。这种递归遍历效率还是有点慢。

...全文
2092 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona1984 2020-01-03
  • 打赏
  • 举报
回复
引用 3 楼 @时间旅行者@ 的回复:
顶楼上,说的有点道理蛤
人家都说遍历慢了,难道序列化反序列化没遍历?道理是这样子的么,当然个人觉得遍历并不会慢,你对象难道还有几千几万的小对象? 只是我觉得需求并不太明确或者不够清晰,有的地方描述画蛇添足.

从这个BigBO中找到某个特定属性(也就是知道属性名,且在bigBO中没有同名属性,且寻找的属性类型为String。可能存在多个,存在对个情况是针对list<BO>)的值,并替换成其他值。
从这个描述,非常简单啊,直接反射就搞定了,有你说的那么玄乎吗?还是我没get到你的点?
@时间旅行者@ 2020-01-02
  • 打赏
  • 举报
回复
顶楼上,说的有点道理蛤
十八道胡同 2019-01-08
  • 打赏
  • 举报
回复
脑洞大点

可否把 这个对象先序列化成json,然后在json里面修改你的值,然后在序列化成对象?
一路奔跑1314 2019-01-08
  • 打赏
  • 举报
回复
自己顶下! 自己顶下! 自己顶下! 自己顶下! 自己顶下! 自己顶下!

51,396

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧