码不动了,真的
1
ppxppx 2022-08-03 16:35:48 +08:00 via Android
BeanUtils.CopyProperties?
|
2
hidemyself 2022-08-03 16:36:41 +08:00
BeanUtils 吧。。或者 MapStruct
|
4
Mrzhs OP @hidemyself 感谢
|
5
dake0805 2022-08-03 16:50:43 +08:00
我是用 IDEA 插件 https://github.com/gejun123456/intellij-generateAllSetMethod 生成,然后自己微调
|
6
ligiggy 2022-08-03 16:54:12 +08:00
A 继承 B ?或者继承同一个接口?
|
7
28Sv0ngQfIE7Yloe 2022-08-03 16:54:57 +08:00
MapStruct 写一个 BaseMapper 然后泛型实现
|
8
lazyfighter 2022-08-03 16:55:18 +08:00
MapStruct
|
9
issakchill 2022-08-03 17:07:35 +08:00 1
如果只是一次性使用 推荐 idea 插件 https://plugins.jetbrains.com/plugin/7171-generateo2o
|
10
a33291 2022-08-03 17:14:57 +08:00
按说 java 应该也有一些基于反射实现的 map 库,类似 automapper 或者 tinymapper 之类的,这种只要 2 个类字段一致(不一致时可通过配置修改,但是很多时候 dto 和 entity 字段是重叠的)只需要调用一个函数即可
楼上提到的 BeanUtils 也许就是干这事的?对 java 不太熟 |
11
jones2000 2022-08-03 17:16:40 +08:00
成员变量太多了, 拆类
|
12
wzcloud 2022-08-03 17:18:57 +08:00
没有代码质量管控的话,直接用 map 呗,反正是后来者维护。
|
13
Vaspike 2022-08-03 17:22:08 +08:00
嫌麻烦的话直接 jackson 序列化第一个对象后填充到第二个对象,楼上各位似乎没提供这种思路,当然可能性能堪忧
当然我平时是把相同属性放到公共父类,写一个反射的工具方法(网上应该能搜到类似的) |
14
LLaMA2 2022-08-03 17:27:48 +08:00
#13 楼的算是一种套路了,然后这种在 TS 中根本不算啥,
|
16
14104chk 2022-08-03 20:04:33 +08:00
可以抽出一个类 A ,里面含有所有的公共属性(多一两个也无所谓),然后组合到 in 和 orderDetl 里面。赋值的时候,直接 in.setA(orderDetl.getA())
|
17
xy90321 2022-08-03 20:28:11 +08:00 via iPhone
是有什么深意我没读懂吗?不是一个 Dozer BeanMapper 就解决的事情?
|
18
Leviathann 2022-08-03 20:37:36 +08:00
正则替换一下
|
19
ns09005264 2022-08-03 22:32:13 +08:00
我一般用这种方式,先用插件生成调用 setter 的代码段,配合 vim 的动作录制,快速且有静态检查
|
20
ns09005264 2022-08-03 22:35:44 +08:00
|
21
version0 2022-08-03 22:39:31 +08:00
嘿,我以前写过这种代码,当时迷信反射效率低,就手写过这种代码。🤣
|
22
Goooooos 2022-08-03 22:44:41 +08:00 via Android
我一般都是 beanutils.copyproperties
|
23
Saxton 2022-08-03 22:55:56 +08:00 via iPhone
果断推荐 mapStruct 强推啊 延长寿命的东西
|
24
Saxton 2022-08-03 22:57:44 +08:00 via iPhone
@Vaspike 强推 mapStruct 。。。 非反射 编译自动 生成方法,配合 idea 插件自动补充注解,舒服到上天
|
25
Saxton 2022-08-03 22:58:49 +08:00 via iPhone
mapStruct 也有编译检查,字段写错类型不对会提示
|
26
silentsky 2022-08-04 00:34:17 +08:00 via Android
如果你用 beanutil ,等有一天改属性的时候你就知道难受,至少这种方式会给你编译报错
|
28
xmumiffy 2022-08-04 01:14:40 +08:00 via Android
Json encode&decode
|
29
bthulu 2022-08-04 08:33:56 +08:00
字段都一样, 你为什么要用两个实体类呢, 吃饱了撑的吗?
|
30
guanhui07 2022-08-04 08:57:32 +08:00
mapStruct
|
31
hahaFck 2022-08-04 10:05:10 +08:00
java 就是实体分的太多了,大量重复的属性。
|
33
lyxeno 2022-08-04 10:33:18 +08:00
用 BeanUtils 后续重构好像不太方便,我这种代码现在都是用 Github Copilot 帮忙自动生成的
然后自己写的时候注意一点,没必要的实体类就不另外新增了,减少这种重复代码 |
34
luomao 2022-08-04 10:49:02 +08:00
orika
|
36
blackshow 2022-08-04 11:26:47 +08:00
MapStruct
|
37
tramm 2022-08-04 15:58:38 +08:00
mapstruct
Spring 的 beanutil Hutool 的 beanutil... |