大佬们,求教一个技术问题

182 天前
 likre
用的 java

有三个 dto ,a ,b ,c
a 有个 mapper 方法转化为 b ,b 有个 mapper 方法转化位 c
里面可能是简单的 get set ,也可能有时间转化等转化方法,也可能有逻辑控制转化的逻辑。

有什么办法能自动化地知道 a 到 b 再到 c 的过程中,漏了哪些字段,多了哪些字段呢?
1975 次点击
所在节点    Java
12 条回复
KOMA1NIUJUNSHENG
182 天前
看源码
manasheep
182 天前
序列化成 json ,然后生成 json patch ?
SirYuxuan
182 天前
aop 反射 逐个字段对比
jianming348
182 天前
用 jackson 或 Gson 将数据转成 map 类型,然后对比 keys 的数量
chendy
182 天前
反射拿所有 getter 方法
然后放一起对比
likre
182 天前
反射拿字段很简单,主要是对比很难受,字段又多,mapper 的方法又长。。
dddd1919
182 天前
如果只是简单的同名字段映射,把所有属性粘出来排个顺序,找个文本 diff 工具一目了然
nerkeler
182 天前
fastjson 自定义注解转换
YangtzeHuanghe
182 天前
你可以考虑使用单元测试来确保在 a 到 b 到 c 的转化过程中没有遗漏或者多余的字段。

首先,你可以为每个 DTO 编写单元测试,测试这些转化方法是否按预期工作。在测试中,你可以使用断言来验证转化后的对象是否包含了正确的字段和值。

其次,你可以编写一些集成测试,测试整个转化过程是否正确执行。这可以包括将 a 转化为 b ,再将 b 转化为 c ,然后验证 c 是否包含了所有正确的字段和值。

另外,你也可以考虑使用一些代码静态分析工具或者代码审查工具来检查你的代码,以确保没有漏掉或者多余的字段。

总的来说,通过使用单元测试和集成测试,以及利用工具来帮助你审查代码,你可以相对自动地确保在转化过程中没有遗漏或者多余的字段。--------from ChatGPT
julyclyde
182 天前
单元测试只是“one of 你可以做的事”
而不是“one of 可以实现目标的方法”
stephniebuewke
182 天前
Aresxue
178 天前
这个场景反射就是最简单的方案。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/990117

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX