
1 OrangeAdd Oct 16, 2022 可以看下 mapstruct |
5 optional Oct 16, 2022 mapstruct+1 |
6 dreamlike Oct 16, 2022 via Android 深拷贝 我就比较弱智 我先序列化 json 然后反序列化 浅拷贝 我靠 vo2dto 这个插件搞的 基本走编码时代码生成的路子 出问题好查 |
7 bthulu Oct 16, 2022 IDE 自动生成 clone 方法啊, 你难道用反射? 那你还怎么用 GraalVM |
10 Red998 Oct 16, 2022 Apache 这个性能有点低 。推荐插件吧 https://plugins.jetbrains.com/plugin/18264-beanmappingkey 深拷贝:new 一个全新对象 set 最稳 |
11 shelken Oct 16, 2022 via iPhone @redorblacck886 感谢,前两周写的时候就在找有没有自动 builder 相同字段名字转换的,要不然一个一个手打对应字段太难受了 |
12 ConnorTomato Oct 16, 2022 BeanMappingKey + 1 ,是一个 V2 小伙伴写的。自动 get set ,一目了然,绝不可能出错。 BeanUtils 有各种坑, 曾经遇到一个坑是 RPC 调用的时候,序列化报错。 |
13 zhiyu1998 OP @redorblacck886 我超 这个 new bee |
14 silencil Oct 16, 2022 via iPhone 也是用 mapstruct |
16 mikicomo Oct 16, 2022 |
17 wolfie Oct 16, 2022 mapstruct 编译期处理,速度快、有问题反编译就能看到原因。 |
18 billly Oct 16, 2022 直接用插件生成方法,简单高效 |
22 xuanbg Oct 17, 2022 有像我一样从来不用浅拷贝的么? 深拷贝我和#6 一样,简单粗暴序列化+反序列化。这样不但能深拷贝,还可以转换任意复杂类型呢。好用得一逼! |
23 tedzhou1221 Oct 17, 2022 @mikicomo 你们使用 kryo 时,序列化的对象里有个添加字段,依赖这个对象的服务需要重启吗? |
24 yule111222 Oct 17, 2022 不用这些,一律手写,可以避免很多问题 如果 2 个对象结构一模一样,明显存在设计问题 |
25 aooooobaibai Oct 17, 2022 idea plugin : GenerateAllSetter |
26 zhiyu1998 OP @chg87599671 感谢推荐 虽然这个已经是很久以前的插件了 哈哈哈 |
27 zhiyu1998 OP @yule111222 这个确实应该考虑下 |
28 mikicomo Oct 17, 2022 @tedzhou1221 #23 场景不一样,我们深拷贝的都是内部使用的中间变量,提供给外部的实体是另一套,并不会使用深拷贝 |
29 RedBeanIce Oct 17, 2022 自己写 getset ,通过插件配合。 |
30 oldshensheep Oct 17, 2022 MapStruct 用了就回不去了,转换对象只用写一个接口……代码自动生成。性能是最好的,和自己写 GetSet 是一样的。 |
31 oldshensheep Oct 17, 2022 spring 的那个速度也还可以,主要用它可以不用写代码……可以偷懒,但是它比 MapStruct 慢了一个数量级差不多,我现在都是使用的 MapStruct 。 MapStruct 拓展性也比较好,你可以自定义转换代码,可以在转换后完成一些操作等等。 如果你要定义一个 User 转换器 @Mapper public interface UserMapper { UserMapper INSTANCE = Mappers.getMapper(UserMapper.class); UserVo toUserVo(User user); } 然后 var userVO = UserMapper .INSTANCE .toUserVo(user) 就可以转换完成 各种 DTO 转换器速度的比较 https://zhuanlan.zhihu.com/p/420054993 |
32 zhiyu1998 OP @oldshensheep 心动了 |