请问大家在项目中是如何完成结构体之间的转换的,如: DTO ---> VO

2022-01-07 11:15:23 +08:00
 Morii

之前用 java 的时候是通过 mapStruct 做的,不知道 golang 有什么轻松地方式?

4553 次点击
所在节点    Go 编程语言
30 条回复
stevenbipt
2022-01-07 11:44:20 +08:00
有一些赋值的轮子,类似这个:https://github.com/zywaited/xcopy,好像 go-zero 也提供了这种拷贝的库
me221
2022-01-07 11:51:40 +08:00
蹲一个 java 中有什么轻松的方式
Morii
2022-01-07 11:56:43 +08:00
@me221 #2

mapStruct ,就是编译会变慢,不过个人感觉很好用
xlsepiphone
2022-01-07 12:25:53 +08:00
Java:
如果轻度使用=> HuTool
重度使用=>ModelMapper
dqzcwxb
2022-01-07 12:27:05 +08:00
手动 set 性能最高
masterclock
2022-01-07 12:33:42 +08:00
用 protobuf 比较多,考虑过写个插件自动生产点转换代码,后来用上 GitHub copilot 后感觉没有需求了,copilot 基本能自动生成转换函数。
kosgug
2022-01-07 12:34:55 +08:00
kid8768611
2022-01-07 14:32:17 +08:00
蹲一个 java 中有什么轻松的方式
Chinsung
2022-01-07 14:39:54 +08:00
以前用 BeanUtils ,现在手动 set 。
复杂业务多层转换之后,你不手动,全是这种转换,真的很难知道哪些字段有值哪些字段没值
silentsky
2022-01-07 15:28:22 +08:00
手动 set 比较好,当你改了某些属性,编译会给你报错提示,BeanUtils 那些你无法感知到,后期维护痛苦
HENQIGUAI
2022-01-07 15:39:52 +08:00
手写 Converter..
alen0206
2022-01-07 15:49:43 +08:00
MapStruct
2i2Re2PLMaDnghL
2022-01-07 15:53:51 +08:00
来点邪道的:代码生成
leafre
2022-01-07 16:18:44 +08:00
mapstruct
cocoabeans
2022-01-07 16:21:21 +08:00
MapStruct + 1 +1
yjll9102
2022-01-07 16:22:20 +08:00
MapStruct + 1 +1 +1
www5070504
2022-01-07 16:39:51 +08:00
Dkngit
2022-01-07 16:46:32 +08:00
以前用 BeanUtils ,现在手动 set 。
xianyv
2022-01-07 16:50:25 +08:00
以前用 BeanUtils,现在还在用 BeanUtils,只是有的时候改字段后会少赋值
hingbong
2022-01-07 16:54:21 +08:00
当然是 copilot 生成啊,都不会写代码了现在

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

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

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

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

© 2021 V2EX