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 ![]() 反射+注解 |
![]() | 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 ClaudeCode 2020-05-14 14:18:33 +08:00 怎么折腾 你都少不了,根据业务找字段这个过程。 所以重点是怎么设计这个“过程”而不是找字段 if(场景 1) 字段 1 字段 2 else if(场景 2) 字段 1 字段 2 else if(场景 3) |
14 ClaudeCode 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 |