1
promise2mm 2020-05-14 11:00:14 +08:00
放变量名还是具体值?你是怎么指定这 30 个变量的?
|
2
promise2mm 2020-05-14 11:01:33 +08:00
这让我想起了之前某位 v2er 说的 X Y problem? 先让大家明白你这样做目的是什么?
|
3
pws22 2020-05-14 11:03:06 +08:00 1
反射+注解
|
4
guyeu 2020-05-14 11:04:27 +08:00
出现这种睿智代码的主要原因可能是上游什么业务写得睿智。。不过这个问题本身,可能 json 序列化+反序列化的代码最简介(当然效率不是最优)
|
5
rockyou12 2020-05-14 11:04:43 +08:00
用 mapstruct https://mapstruct.org/
|
6
EastLord 2020-05-14 11:08:24 +08:00
用楼上现成的轮子或者 按照 3 楼
|
7
pushback 2020-05-14 11:14:13 +08:00
反射可以
|
8
pushback 2020-05-14 11:14:42 +08:00
|
9
pushback 2020-05-14 11:15:20 +08:00
异常替换成 boolean 就行
|
10
XenoAmess 2020-05-14 11:17:06 +08:00
如果低性能要求高灵活度要求,就反射。
如果高性能要求,就生成。 |
11
Jrue0011 2020-05-14 11:26:25 +08:00
前面几楼已经说了,想要让业务方法里代码简短,就找轮子或者自定义注解+反射,虽然其实背后处理的代码不少。。。想最大性能就手动往 List 放
|
12
5ispy OP @promise2mm 放具体的值。
这 30 个变量是业务指定的。 可以理解为这样的场景: A 系统在多个场景下都会调用 B 系统的一个接口,接口返回的数据是个实体,里面有 100 个成员变量。 A 系统需要的数据都在这 100 个成员变量范围内,但是不同场景下需要的成员变量是不一样的。 A 系统拿到数据后都需要放到一个 list 里给到 C 系统。 比如: 场景一需要 firstName lastName 场景二需要 firstName schoolName 场景三需要 fatherName schoolName 。。。 |
13
yaocai321 2020-05-14 14:18:33 +08:00
怎么折腾 你都少不了,根据业务找字段这个过程。
所以重点是怎么设计这个“过程”而不是找字段 if(场景 1) 字段 1 字段 2 else if(场景 2) 字段 1 字段 2 else if(场景 3) |
14
yaocai321 2020-05-14 14:20:05 +08:00
按下 tab + 回车 把没编辑完的内容发出去了 尴尬。
算了,楼主去悟吧 |
15
xcstream 2020-05-14 15:04:38 +08:00
写个 if else 其实用时也不多
|
16
jaryur 2020-05-14 15:15:40 +08:00
Apache Common BeanMap
|